* cygheap.h (cygheap_fdenum::cygheap_fdenum): Record locked state or suffer

deadlocks.
(class locked_process): Move to another header.
* sync.h (lock_process): Define here.
* cygtls.cc (_cygtls::fixup_after_fork): Reset spinning state as well as
stacklock state.
* dcrt0.cc (lock_process::locker): Define.
(dtable::lock_cs): Delete.
* dtable.cc (dtable_init): Eliminate call to init_lock().
(dtable::fixup_after_fork): Ditto.
(dtable::init_lock): Delete definition.
* dtable.h (dtable::init_lock): Delete declaration.
(dtable::lock): Use process lock rather than dtable-specific lock.
(dtable::unlock): Ditto.
* sigproc.cc (sigproc_init): Minor change to debugging output.
* times.cc (utime_worker): Use build_fh_pc rather than reinterpreting the posix
path name again.  Return any error from path_conv immediately.
This commit is contained in:
Christopher Faylor
2005-10-23 23:47:45 +00:00
parent c2c020d1fb
commit 82c925af80
9 changed files with 87 additions and 67 deletions

View File

@@ -47,8 +47,6 @@ dtable_init ()
{
if (!cygheap->fdtab.size)
cygheap->fdtab.extend (NOFILE_INCR);
cygheap->fdtab.init_lock ();
}
void __stdcall
@@ -60,12 +58,6 @@ set_std_handle (int fd)
SetStdHandle (std_consts[fd], cygheap->fdtab[fd]->get_output_handle ());
}
void
dtable::init_lock ()
{
lock_cs.init ("lock_cs");
}
int
dtable::extend (int howmuch)
{
@@ -687,7 +679,6 @@ dtable::fixup_after_exec ()
{
first_fd_for_open = 0;
fhandler_base *fh;
cygheap->fdtab.init_lock ();
for (size_t i = 0; i < size; i++)
if ((fh = fds[i]) != NULL)
{
@@ -713,7 +704,6 @@ void
dtable::fixup_after_fork (HANDLE parent)
{
fhandler_base *fh;
cygheap->fdtab.init_lock ();
for (size_t i = 0; i < size; i++)
if ((fh = fds[i]) != NULL)
{