* 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:
parent
2196614e3d
commit
3c53eaeb5b
@ -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 ();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user