diff options
author | Christopher Faylor <me@cgf.cx> | 2005-01-12 22:40:46 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-01-12 22:40:46 +0000 |
commit | 169c465a83ef690c2f84ef563c5b56062ee2cb13 (patch) | |
tree | 0dde0f7b39a8dbad2b4577d1125ae0f4d189c888 /winsup/cygwin/fhandler.h | |
parent | 066e8c84249c6d4e81b22312b9d2a9f985dac35b (diff) | |
download | cygnal-169c465a83ef690c2f84ef563c5b56062ee2cb13.tar.gz cygnal-169c465a83ef690c2f84ef563c5b56062ee2cb13.tar.bz2 cygnal-169c465a83ef690c2f84ef563c5b56062ee2cb13.zip |
Reorganize header file inclusion throughout so that cygerrno.h comes first.
* fhandler.h (select_record::thread_errno): Save any encountered errno here.
(select_record::set_select_errno): New function.
(select_record::saw_error): New function.
(select_record::select_record): Initialize thread_errno to zero.
* select.cc (set_handle_or_return_if_not_open): Set thread_errno on failure.
(select_stuff::wait): Record errno for later resurrection in calling thread.
(peek_serial): Ditto.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index df02ece23..47b216cda 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -1216,7 +1216,7 @@ struct select_record int fd; HANDLE h; fhandler_base *fh; - bool saw_error; + int thread_errno; bool windows_handle; bool read_ready, write_ready, except_ready; bool read_selected, write_selected, except_selected; @@ -1227,9 +1227,11 @@ struct select_record fd_set *exceptfds); void (*cleanup) (select_record *me, class select_stuff *stuff); struct select_record *next; + void set_select_errno () {__seterrno (); thread_errno = errno;} + int saw_error () {return thread_errno;} select_record (fhandler_base *in_fh = NULL) : fd (0), h (NULL), - fh (in_fh), saw_error (false), windows_handle (false), + fh (in_fh), thread_errno (0), windows_handle (false), read_ready (false), write_ready (false), except_ready (false), read_selected (false), write_selected (false), except_selected (false), except_on_write (false), |