137 gdb_client_data client_data,
143 async_handler_ptr->
ready = 0;
153 return async_handler_ptr;
163 if (debug_event_loop != debug_event_loop_kind::OFF)
167 const char head[] = (
"[event-loop] mark_async_signal_handler: marking"
168 "async signal handler `");
169 gdb_stdlog->write_async_safe (head, strlen (head));
172 strlen (async_handler_ptr->
name));
174 const char tail[] =
"`\n";
175 gdb_stdlog->write_async_safe (tail, strlen (tail));
178 async_handler_ptr->
ready = 1;
187 event_loop_debug_printf (
"clearing async signal handler `%s`",
188 async_handler_ptr->
name);
189 async_handler_ptr->
ready = 0;
197 return async_handler_ptr->
ready;
219 async_handler_ptr != NULL;
222 if (async_handler_ptr->
ready)
225 if (async_handler_ptr == NULL)
228 async_handler_ptr->
ready = 0;
232 event_loop_debug_printf (
"invoking async signal handler `%s`",
233 async_handler_ptr->
name);
256 while (prev_ptr && prev_ptr->
next_handler != (*async_handler_ptr))
258 gdb_assert (prev_ptr);
263 xfree ((*async_handler_ptr));
264 (*async_handler_ptr) = NULL;
271 gdb_client_data client_data,
297 event_loop_debug_printf (
"marking async event handler `%s` "
298 "(previous state was %d)",
299 async_handler_ptr->
name,
300 async_handler_ptr->
ready);
301 async_handler_ptr->
ready = 1;
309 event_loop_debug_printf (
"clearing async event handler `%s`",
310 async_handler_ptr->
name);
311 async_handler_ptr->
ready = 0;
319 return handler->
ready;
331 async_handler_ptr != NULL;
334 if (async_handler_ptr->
ready)
336 event_loop_debug_printf (
"invoking async event handler `%s`",
337 async_handler_ptr->
name);
363 while (prev_ptr && prev_ptr->
next_handler != *async_handler_ptr)
365 gdb_assert (prev_ptr);
370 xfree (*async_handler_ptr);
371 *async_handler_ptr = NULL;
int async_signal_handler_is_marked(async_signal_handler *async_handler_ptr)
void mark_async_event_handler(async_event_handler *async_handler_ptr)
async_event_handler * create_async_event_handler(async_event_handler_func *proc, gdb_client_data client_data, const char *name)
void clear_async_signal_handler(async_signal_handler *async_handler_ptr)
void delete_async_signal_handler(async_signal_handler **async_handler_ptr)
void clear_async_event_handler(async_event_handler *async_handler_ptr)
int invoke_async_signal_handlers(void)
static struct @15 sighandler_list
void delete_async_event_handler(async_event_handler **async_handler_ptr)
static struct @16 async_event_handler_list
async_signal_handler * create_async_signal_handler(sig_handler_func *proc, gdb_client_data client_data, const char *name)
async_event_handler * last_handler
int check_async_event_handlers()
async_event_handler * first_handler
static struct serial_event * async_signal_handlers_serial_event
static void async_signals_handler(int error, gdb_client_data client_data)
void initialize_async_signal_handlers(void)
void mark_async_signal_handler(async_signal_handler *async_handler_ptr)
bool async_event_handler_marked(async_event_handler *handler)
void sig_handler_func(gdb_client_data)
void async_event_handler_func(gdb_client_data)
void serial_event_set(struct serial_event *event)
void serial_event_clear(struct serial_event *event)
struct serial_event * make_serial_event(void)
int serial_event_fd(struct serial_event *event)
async_event_handler_func * proc
gdb_client_data client_data
struct async_event_handler * next_handler
gdb_client_data client_data
struct async_signal_handler * next_handler