OSDN Git Service

Reorganize header file inclusion throughout so that cygerrno.h comes first.
authorcgf <cgf>
Wed, 12 Jan 2005 22:40:41 +0000 (22:40 +0000)
committercgf <cgf>
Wed, 12 Jan 2005 22:40:41 +0000 (22:40 +0000)
* 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.

23 files changed:
winsup/cygwin/ChangeLog
winsup/cygwin/cygheap.cc
winsup/cygwin/dlfcn.cc
winsup/cygwin/dtable.cc
winsup/cygwin/environ.cc
winsup/cygwin/exec.cc
winsup/cygwin/fcntl.cc
winsup/cygwin/fhandler.h
winsup/cygwin/fhandler_floppy.cc
winsup/cygwin/fhandler_zero.cc
winsup/cygwin/fork.cc
winsup/cygwin/grp.cc
winsup/cygwin/malloc_wrapper.cc
winsup/cygwin/mmap.cc
winsup/cygwin/pinfo.cc
winsup/cygwin/poll.cc
winsup/cygwin/registry.cc
winsup/cygwin/select.cc
winsup/cygwin/shared.cc
winsup/cygwin/strace.cc
winsup/cygwin/sysconf.cc
winsup/cygwin/syslog.cc
winsup/cygwin/uinfo.cc

index 82e29f1..aa8f6a2 100644 (file)
@@ -1,5 +1,20 @@
 2005-01-12  Christopher Faylor  <cgf@timesys.com>
 
+       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.
+
+2005-01-12  Christopher Faylor  <cgf@timesys.com>
+
        * syscalls.cc (system): Use "/bin/sh" as per linux and (sorta) SUSv3.
 
 2005-01-12  Christopher Faylor  <cgf@timesys.com>
index 14cdd8d..192128c 100644 (file)
 #include <string.h>
 #include <assert.h>
 #include <stdlib.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "child_info.h"
 #include "heap.h"
index 3934428..fecb328 100644 (file)
@@ -14,6 +14,7 @@ details. */
 #include <stdlib.h>
 #include <unistd.h>
 #include <ctype.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
@@ -21,7 +22,6 @@ details. */
 #include "thread.h"
 #include "dlfcn.h"
 #include "dll_init.h"
-#include "cygerrno.h"
 #include "cygtls.h"
 
 static void __stdcall
index 38e5057..a699553 100644 (file)
@@ -584,7 +584,7 @@ dtable::select_read (int fd, select_record *s)
   s = fh->select_read (s);
   s->fd = fd;
   s->fh = fh;
-  s->saw_error = 0;
+  s->thread_errno = 0;
   debug_printf ("%s fd %d", fh->get_name (), fd);
   return s;
 }
@@ -601,7 +601,7 @@ dtable::select_write (int fd, select_record *s)
   s = fh->select_write (s);
   s->fd = fd;
   s->fh = fh;
-  s->saw_error = 0;
+  s->thread_errno = 0;
   debug_printf ("%s fd %d", fh->get_name (), fd);
   return s;
 }
@@ -618,7 +618,7 @@ dtable::select_except (int fd, select_record *s)
   s = fh->select_except (s);
   s->fd = fd;
   s->fh = fh;
-  s->saw_error = 0;
+  s->thread_errno = 0;
   debug_printf ("%s fd %d", fh->get_name (), fd);
   return s;
 }
index 121a67d..961dd97 100644 (file)
@@ -18,8 +18,8 @@ details. */
 #include "perprocess.h"
 #include "security.h"
 #include "path.h"
-#include "fhandler.h"
 #include "cygerrno.h"
+#include "fhandler.h"
 #include "dtable.h"
 #include "cygheap.h"
 #include "registry.h"
index ffc13ab..2276545 100644 (file)
@@ -13,13 +13,13 @@ details. */
 #include <unistd.h>
 #include <stdlib.h>
 #include <process.h>
+#include "cygerrno.h"
 #include "perprocess.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "pinfo.h"
 #include "environ.h"
-#include "cygerrno.h"
 #undef _execve
 
 /* This is called _execve and not execve because the real execve is defined
index d81126f..b1f0d99 100644 (file)
@@ -11,11 +11,11 @@ details. */
 #include "winsup.h"
 #include <stdarg.h>
 #include <unistd.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "thread.h"
 
index df02ece..47b216c 100644 (file)
@@ -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),
index 3c8870e..cbf87c3 100644 (file)
@@ -16,10 +16,10 @@ details. */
 #include <asm/socket.h>
 #include <cygwin/hdreg.h>
 #include <cygwin/fs.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
-#include "cygerrno.h"
 
 /**********************************************************************/
 /* fhandler_dev_floppy */
index e44599b..0536bd6 100644 (file)
@@ -13,6 +13,7 @@ details. */
 #include "winsup.h"
 #include <errno.h>
 #include "security.h"
+#include "cygerrno.h"
 #include "path.h"
 #include "fhandler.h"
 
index b047814..b46d032 100644 (file)
@@ -13,11 +13,11 @@ details. */
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdarg.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "sigproc.h"
 #include "pinfo.h"
 #include "cygheap.h"
index 4edfc41..0574e92 100644 (file)
@@ -16,12 +16,12 @@ details. */
 #include <wininet.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include "cygerrno.h"
 #include "pinfo.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "pwdgrp.h"
 #include "cygtls.h"
index 179b91b..edf7e54 100644 (file)
@@ -14,11 +14,11 @@ details. */
 #include "winsup.h"
 #include <stdlib.h>
 #include <assert.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "heap.h"
 #include "sync.h"
index d46ddd2..b560013 100644 (file)
@@ -13,11 +13,11 @@ details. */
 #include <stdlib.h>
 #include <stddef.h>
 #include <sys/mman.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "pinfo.h"
 #include "sys/cygwin.h"
index 2e39ebb..84a66ed 100644 (file)
@@ -14,11 +14,11 @@ details. */
 #include <time.h>
 #include <limits.h>
 #include <stdarg.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "sigproc.h"
 #include "pinfo.h"
 #include "cygwin_version.h"
index 4afbac8..9fd0997 100644 (file)
 #include <stdlib.h>
 #define USE_SYS_TYPES_FD_SET
 #include <winsock2.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "sigproc.h"
 
index d2756a8..543f049 100644 (file)
@@ -13,10 +13,10 @@ details. */
 #include "registry.h"
 #include "security.h"
 #include <cygwin/version.h>
+#include "cygerrno.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 static const char cygnus_class[] = "cygnus";
 
index c943b2a..105b723 100644 (file)
@@ -28,8 +28,8 @@ details. */
 #include <limits.h>
 #define USE_SYS_TYPES_FD_SET
 #include <winsock.h>
-#include "select.h"
 #include "cygerrno.h"
+#include "select.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
@@ -85,8 +85,7 @@ typedef long fd_mask;
   h = (s)->fh->get_handle (); \
   if (cygheap->fdtab.not_open ((s)->fd)) \
     { \
-      (s)->saw_error = true; \
-      set_sig_errno (EBADF); \
+      (s)->thread_errno =  EBADF; \
       return -1; \
     } \
 
@@ -238,7 +237,7 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
        }
       if (!s->startup (s, this))
        {
-         __seterrno ();
+         s->set_select_errno ();
          return -1;
        }
       if (s->h == NULL)
@@ -269,7 +268,7 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
          return -1;
        case WAIT_FAILED:
          select_printf ("WaitForMultipleObjects failed");
-         __seterrno ();
+         s->set_select_errno ();
          return -1;
        case WAIT_TIMEOUT:
          select_printf ("timed out");
@@ -285,8 +284,11 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
         If it returns false, then this wakeup was a false alarm and we should go
         back to waiting. */
       while ((s = s->next))
-       if (s->saw_error)
-         return -1;            /* Somebody detected an error */
+       if (s->saw_error ())
+         {
+           set_errno (s->saw_error ());
+           return -1;          /* Somebody detected an error */
+         }
        else if ((((wait_ret >= m && s->windows_handle) || s->h == w4[wait_ret])) &&
            s->verify (s, readfds, writefds, exceptfds))
          gotone = true;
@@ -1005,8 +1007,7 @@ err:
       return ready;
     }
 
-  __seterrno ();
-  s->saw_error = true;
+  s->set_select_errno ();
   select_printf ("error %E");
   return -1;
 }
index 6ef11c3..5cc8436 100644 (file)
@@ -14,12 +14,12 @@ details. */
 #include <stdlib.h>
 #include <grp.h>
 #include <pwd.h>
+#include "cygerrno.h"
 #include "pinfo.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "heap.h"
 #include "shared_info_magic.h"
index fcbe16f..6b0b74d 100644 (file)
@@ -14,6 +14,7 @@ details. */
 #include <wingdi.h>
 #include <winuser.h>
 #include <ctype.h>
+#include "cygerrno.h"
 #include "pinfo.h"
 #include "perprocess.h"
 #include "cygwin_version.h"
@@ -23,7 +24,6 @@ details. */
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 
 #define PROTECT(x) x[sizeof (x)-1] = 0
index 7a7671a..54346f6 100644 (file)
@@ -13,11 +13,11 @@ details. */
 #include <time.h>
 #include <limits.h>
 #include <ntdef.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "ntdll.h"
 
index c053c22..62f6063 100644 (file)
@@ -14,11 +14,11 @@ details. */
 #include <syslog.h>
 #include <stdarg.h>
 #include <unistd.h>
+#include "cygerrno.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "thread.h"
 #include "cygtls.h"
index ceab909..4c5dc23 100644 (file)
@@ -18,12 +18,12 @@ details. */
 #include <stdlib.h>
 #include <lm.h>
 #include <sys/cygwin.h>
+#include "cygerrno.h"
 #include "pinfo.h"
 #include "security.h"
 #include "path.h"
 #include "fhandler.h"
 #include "dtable.h"
-#include "cygerrno.h"
 #include "cygheap.h"
 #include "registry.h"
 #include "child_info.h"