From 82c925af80cb4493cc15861c18fea64c57c2ee60 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 23 Oct 2005 23:47:45 +0000 Subject: * 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. --- winsup/cygwin/cygheap.h | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) (limited to 'winsup/cygwin/cygheap.h') diff --git a/winsup/cygwin/cygheap.h b/winsup/cygwin/cygheap.h index d9301d415..ad4511e5c 100644 --- a/winsup/cygwin/cygheap.h +++ b/winsup/cygwin/cygheap.h @@ -398,6 +398,7 @@ class cygheap_fdenum : public cygheap_fdmanip public: cygheap_fdenum (int start_fd = -1, bool lockit = false) { + locked = lockit; if (lockit) cygheap->fdtab.lock (); this->start_fd = fd = start_fd < 0 ? -1 : start_fd; @@ -415,27 +416,6 @@ class cygheap_fdenum : public cygheap_fdmanip } }; -class lock_process -{ - bool skip_unlock; -public: - lock_process (bool exiting = false) - { - cygheap->fdtab.lock (); - skip_unlock = exiting; - if (exiting && exit_state < ES_SET_MUTO) - { - exit_state = ES_SET_MUTO; - muto::set_exiting_thread (); - } - } - ~lock_process () - { - if (!skip_unlock) - cygheap->fdtab.unlock (); - } -}; - class child_info; void __stdcall cygheap_fixup_in_child (bool); extern "C" { -- cgit v1.2.3