OSDN Git Service

* cygheap.h (cygheap_fdenum): Remove start_fd stuff.
authorcgf <cgf>
Mon, 24 Oct 2005 15:09:05 +0000 (15:09 +0000)
committercgf <cgf>
Mon, 24 Oct 2005 15:09:05 +0000 (15:09 +0000)
(cygheap_fdenum::rewind): Ditto.
* pipe.cc (fhandler_pipe::open): Lock fdtab while enumerating.
* times.cc (utimes_worker): Ditto.

winsup/cygwin/ChangeLog
winsup/cygwin/cygheap.h
winsup/cygwin/pipe.cc
winsup/cygwin/times.cc

index 9c89e25..b873c49 100644 (file)
@@ -1,3 +1,10 @@
+2005-10-24  Christopher Faylor  <cgf@timesys.com>
+
+       * cygheap.h (cygheap_fdenum): Remove start_fd stuff.
+       (cygheap_fdenum::rewind): Ditto.
+       * pipe.cc (fhandler_pipe::open): Lock fdtab while enumerating.
+       * times.cc (utimes_worker): Ditto.
+
 2005-10-23  Christopher Faylor  <cgf@timesys.com>
 
        * cygheap.h (cygheap_fdenum::cygheap_fdenum): Record locked state or
index ad4511e..c151cd0 100644 (file)
@@ -394,14 +394,13 @@ class cygheap_fdget : public cygheap_fdmanip
 
 class cygheap_fdenum : public cygheap_fdmanip
 {
-  int start_fd;
  public:
-  cygheap_fdenum (int start_fd = -1, bool lockit = false)
+  cygheap_fdenum (bool lockit = false)
   {
     locked = lockit;
     if (lockit)
       cygheap->fdtab.lock ();
-    this->start_fd = fd = start_fd < 0 ? -1 : start_fd;
+    fd = -1;
   }
   int next ()
   {
@@ -412,7 +411,7 @@ class cygheap_fdenum : public cygheap_fdmanip
   }
   void rewind ()
   {
-    fd = start_fd;
+    fd = -1;
   }
 };
 
index 8d16b17..440e703 100644 (file)
@@ -49,7 +49,7 @@ fhandler_pipe::open (int flags, mode_t mode)
   sscanf (get_name (), "/proc/%d/fd/pipe:[%d]", &pid, (int *) &pipe_hdl);
   if (pid == myself->pid)
     {
-      cygheap_fdenum cfd;
+      cygheap_fdenum cfd (true);
       while (cfd.next () >= 0)
        {
          if (cfd->get_handle () != pipe_hdl)
index 4ceb093..7bb961d 100644 (file)
@@ -454,7 +454,7 @@ utimes_worker (const char *path, const struct timeval *tvp, int nofollow)
       fhandler_base *fh = NULL;
       bool fromfd = false;
 
-      cygheap_fdenum cfd;
+      cygheap_fdenum cfd (true);
       while (cfd.next () >= 0)
        if (cfd->get_access () & (FILE_WRITE_ATTRIBUTES | GENERIC_WRITE)
            && strcmp (cfd->get_win32_name (), win32) == 0)