diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2012-02-14 13:55:45 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2012-02-14 13:55:45 +0000 |
commit | a8c8f19a43534cb9172539fcfcc6e83a39f48b9d (patch) | |
tree | 78f2bfd823df547fcfcc4800187f24ea7600ced6 | |
parent | 8895d962d5fbb79dcd65db9d801644fb1fa2ca5e (diff) | |
download | cygnal-a8c8f19a43534cb9172539fcfcc6e83a39f48b9d.tar.gz cygnal-a8c8f19a43534cb9172539fcfcc6e83a39f48b9d.tar.bz2 cygnal-a8c8f19a43534cb9172539fcfcc6e83a39f48b9d.zip |
* flock.cc (lf_setlock): Don't close waited lock object handle before
we own the node lock. Fix comment.
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/flock.cc | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 834fe7ac0..495c15d79 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2012-02-14 Corinna Vinschen <corinna@vinschen.de> + * flock.cc (lf_setlock): Don't close waited lock object handle before + we own the node lock. Fix comment. + +2012-02-14 Corinna Vinschen <corinna@vinschen.de> + * cygheap.cc (init_cygheap::init_installation_root): Convert function init_installation_root into a cygheap method. * cygheap.h (struct init_cygheap): Move installation_root, diff --git a/winsup/cygwin/flock.cc b/winsup/cygwin/flock.cc index bd508719c..4f920643d 100644 --- a/winsup/cygwin/flock.cc +++ b/winsup/cygwin/flock.cc @@ -1039,11 +1039,11 @@ lf_setlock (lockf_t *lock, inode_t *node, lockf_t **clean, HANDLE fhdl) DWORD ret = WaitForMultipleObjects (wait_count, w4, FALSE, proc ? INFINITE : 100L); SetThreadPriority (GetCurrentThread (), old_prio); - /* Always close handles before locking the node. */ - NtClose (obj); if (proc) CloseHandle (proc); node->LOCK (); + /* Never close lock object handle outside of node lock! */ + NtClose (obj); if (ret == WAIT_SIGNAL_ARRIVED) { /* A signal came in. */ |