* flock.cc (inode_t::del_my_locks): Drop useless counter lc. Close
lock object handle explicitely in case of called during fork. Add comment to explain why. * fork.cc (frok::child): Drop declaration of fixup_lockf_after_fork.
This commit is contained in:
		| @@ -1,3 +1,10 @@ | ||||
| 2012-02-20  Corinna Vinschen  <corinna@vinschen.de> | ||||
|  | ||||
| 	* flock.cc (inode_t::del_my_locks): Drop useless counter lc.  Close | ||||
| 	lock object handle explicitely in case of called during fork.  Add | ||||
| 	comment to explain why. | ||||
| 	* fork.cc (frok::child): Drop declaration of fixup_lockf_after_fork. | ||||
|  | ||||
| 2012-02-17  Corinna Vinschen  <corinna@vinschen.de> | ||||
|  | ||||
| 	* timer.cc (getitimer): Don't create another local ret variable in | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| /* flock.cc.  NT specific implementation of advisory file locking. | ||||
|  | ||||
|    Copyright 2003, 2008, 2009, 2010, 2011 Red Hat, Inc. | ||||
|    Copyright 2003, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc. | ||||
|  | ||||
|    This file is part of Cygwin. | ||||
|  | ||||
| @@ -347,14 +347,18 @@ inode_t::del_my_locks (long long id, HANDLE fhdl) | ||||
| { | ||||
|   lockf_t *lock, *n_lock; | ||||
|   lockf_t **prev = &i_lockf; | ||||
|   int lc = 0; | ||||
|   for (lock = *prev; lock && (n_lock = lock->lf_next, 1); lock = n_lock) | ||||
|     { | ||||
|       if (lock->lf_flags & F_POSIX) | ||||
| 	{ | ||||
| 	  /* Delete all POSIX locks. */ | ||||
| 	  *prev = n_lock; | ||||
| 	  ++lc; | ||||
| 	  /* When called during fork, the POSIX lock must get deleted but | ||||
| 	     *not* signalled.  The lock is still active and locked in the | ||||
| 	     parent.  So in case of fork, we call close_lock_obj explicitely, | ||||
| 	     since del_lock_obj is called from the destructor. */ | ||||
| 	  if (!id) | ||||
| 	    lock->close_lock_obj (); | ||||
| 	  delete lock; | ||||
| 	} | ||||
|       else if (id && lock->lf_id == id) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| /* fork.cc | ||||
|  | ||||
|    Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, | ||||
|    2007, 2008, 2009, 2010, 2011 Red Hat, Inc. | ||||
|    2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc. | ||||
|  | ||||
| This file is part of Cygwin. | ||||
|  | ||||
| @@ -190,7 +190,6 @@ int __stdcall | ||||
| frok::child (volatile char * volatile here) | ||||
| { | ||||
|   HANDLE& hParent = ch.parent; | ||||
|   extern void fixup_lockf_after_fork (); | ||||
|   extern void fixup_hooks_after_fork (); | ||||
|   extern void fixup_timers_after_fork (); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user