* fhandler.cc (fhandler_base::fork_fixup): Don't protect handle.

* dlfcn.cc: Fix to confirm to coding standards.  Reorganize includes throughout
to accomodate new cygheap.h usage.
* cygheap.h (cygheap_fdmanip): New class: simplifies locking and retrieval of
fds from cygheap->fdtab.
(cygheap_fdget): Ditto.
(cygheap_fdnew): Ditto.
* fcntl.cc (_fcntl): Use new method to lock fdtab and retrieve info.
* ioctl.cc (ioctl): Ditto.
* mmap.cc (mmap): Ditto.
* net.cc: Ditto, throughout.
* passwd.cc (getpass): Ditto.
* path.cc (fchdir): Ditto.
* pipe.cc (make_pipe): Ditto.
* sec_acl.cc (facl): Ditto.
* syscalls.cc: Ditto, throughout.
* termios.cc: Ditto, throughout.
This commit is contained in:
Christopher Faylor
2001-10-15 23:39:33 +00:00
parent fff126983e
commit df63bd490a
24 changed files with 398 additions and 396 deletions

View File

@ -3136,19 +3136,17 @@ extern "C"
int
fchdir (int fd)
{
int res;
sigframe thisframe (mainthread);
if (cygheap->fdtab.not_open (fd))
{
syscall_printf ("-1 = fchdir (%d)", fd);
set_errno (EBADF);
return -1;
}
SetResourceLock (LOCK_FD_LIST, WRITE_LOCK | READ_LOCK, "fchdir");
int ret = chdir (cygheap->fdtab[fd]->get_name ());
ReleaseResourceLock (LOCK_FD_LIST, WRITE_LOCK | READ_LOCK, "fchdir");
syscall_printf ("%d = fchdir (%d)", ret, fd);
return ret;
cygheap_fdget cfd (fd);
if (cfd >= 0)
res = chdir (cfd->get_name ());
else
res = -1;
syscall_printf ("%d = fchdir (%d)", res, fd);
return res;
}
/******************** Exported Path Routines *********************/