inf-ptrace: Add an event_pipe to be used for async mode in subclasses.

Subclasses of inf_ptrace_target have to opt-in to using the event_pipe
by implementing the can_async_p and async methods.  For subclasses
which do this, inf_ptrace_target provides is_async_p, async_wait_fd
and closes the pipe in the close target method.

inf_ptrace_target also provides wrapper routines around the event pipe
(async_file_open, async_file_close, async_file_flush, and
async_file_mark) for use in target methods such as async.
inf_ptrace_target also exports a static async_file_mark_if_open
function which can be used in SIGCHLD signal handlers.
This commit is contained in:
John Baldwin
2022-02-22 11:22:14 -08:00
parent e05523bd24
commit b146ba14d7
6 changed files with 78 additions and 148 deletions

View File

@@ -83,16 +83,12 @@ public:
void thread_events (int) override;
bool can_async_p () override;
bool is_async_p () override;
bool supports_non_stop () override;
bool always_non_stop_p () override;
int async_wait_fd () override;
void async (int) override;
void close () override;
void stop (ptid_t) override;
bool supports_multi_process () override;