* 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.
This commit is contained in:
parent
95baaf8819
commit
16bbf0cc57
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue