X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fevent-loop.h;h=7159d975252f42a25eb842519fdb158ebe1f4639;hb=ac775bf4d35b7a2d5715e0ccf3d648d4670213fd;hp=e519852e03085570fe710b5efc2fbf7243fddb0e;hpb=e0dd0826e246e3d39081881db7bcc69ca5ec77a2;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/event-loop.h b/gdb/event-loop.h index e519852e03..7159d97525 100644 --- a/gdb/event-loop.h +++ b/gdb/event-loop.h @@ -1,6 +1,5 @@ /* Definitions used by the GDB event loop. - Copyright (C) 1999, 2000, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright (C) 1999-2016 Free Software Foundation, Inc. Written by Elena Zannoni of Cygnus Solutions. This file is part of GDB. @@ -76,18 +75,6 @@ typedef void (sig_handler_func) (gdb_client_data); typedef void (async_event_handler_func) (gdb_client_data); typedef void (timer_handler_func) (gdb_client_data); -/* Where to add an event onto the event queue, by queue_event. */ -typedef enum - { - /* Add at tail of queue. It will be processed in first in first - out order. */ - TAIL, - /* Add at head of queue. It will be processed in last in first - out order. */ - HEAD - } -queue_position; - /* Exported functions from event-loop.c */ extern void start_event_loop (void); @@ -104,27 +91,18 @@ extern int create_timer (int milliseconds, gdb_client_data client_data); extern void delete_timer (int id); -/* Call the handler from HANDLER immediately. This function - runs signal handlers when returning to the event loop would be too - slow. Do not call this directly; use gdb_call_async_signal_handler, - below, with IMMEDIATE_P == 1. */ -void call_async_signal_handler (struct async_signal_handler *handler); +/* Call the handler from HANDLER the next time through the event + loop. */ +extern void mark_async_signal_handler (struct async_signal_handler *handler); + +/* Returns true if HANDLER is marked ready. */ -/* Call the handler from HANDLER the next time through the event loop. - Do not call this directly; use gdb_call_async_signal_handler, - below, with IMMEDIATE_P == 0. */ -void mark_async_signal_handler (struct async_signal_handler *handler); +extern int + async_signal_handler_is_marked (struct async_signal_handler *handler); -/* Wrapper for the body of signal handlers. Call this function from - any SIGINT handler which needs to access GDB data structures or - escape via longjmp. If IMMEDIATE_P is set, this triggers either - immediately (for POSIX platforms), or from gdb_select (for - MinGW). If IMMEDIATE_P is clear, the handler will run the next - time we return to the event loop and any current select calls - will be interrupted. */ +/* Mark HANDLER as NOT ready. */ -void gdb_call_async_signal_handler (struct async_signal_handler *handler, - int immediate_p); +extern void clear_async_signal_handler (struct async_signal_handler *handler); /* Create and register an asynchronous event source in the event loop, and set PROC as its callback. CLIENT_DATA is passed as argument to @@ -143,3 +121,9 @@ extern void /* Call the handler from HANDLER the next time through the event loop. */ extern void mark_async_event_handler (struct async_event_handler *handler); + +/* Mark the handler (ASYNC_HANDLER_PTR) as NOT ready. */ + +extern void clear_async_event_handler (struct async_event_handler *handler); + +extern void initialize_async_signal_handlers (void);