X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fgdb_select.h;h=00a972ec84c9889ea0218e5b223439ecaefd0870;hb=e671856cb804c977650aaeb4107948a7b963e9e9;hp=9748a13974f641f3b5fb9073aba7a2b40f181c05;hpb=438e1e427e8393de73d22617abe4d8eba0270e72;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdb_select.h b/gdb/gdb_select.h index 9748a13974..00a972ec84 100644 --- a/gdb/gdb_select.h +++ b/gdb/gdb_select.h @@ -1,6 +1,6 @@ /* Slightly more portable version of . - Copyright (C) 2006-2015 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -23,7 +23,7 @@ #ifdef HAVE_SYS_SELECT_H #include #else -#include "gdb_sys_time.h" +#include "gdbsupport/gdb_sys_time.h" #endif #ifdef USE_WIN32API @@ -33,4 +33,19 @@ extern int gdb_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); +/* Convenience wrapper around gdb_select that returns -1/EINTR if + set_quit_flag is set, either on entry or from a signal handler or + from a different thread while select is blocked. The quit flag is + not cleared on exit -- the caller is responsible to check it with + check_quit_flag or QUIT. + + Note this does NOT return -1/EINTR if any signal handler other than + SIGINT runs, nor if the current SIGINT handler does not call + set_quit_flag. */ +extern int interruptible_select (int n, + fd_set *readfds, + fd_set *writefds, + fd_set *exceptfds, + struct timeval *timeout); + #endif /* !defined(GDB_SELECT_H) */