summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler.h
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2009-07-22 15:46:36 +0000
committerCorinna Vinschen <corinna@vinschen.de>2009-07-22 15:46:36 +0000
commit4a77aea0714cf0175279fbf65cdb8322a5af958b (patch)
tree6c49ca63adb99610e12ed93645b40c3ee5153672 /winsup/cygwin/fhandler.h
parent1e497ebd33c2e75d6e2a00d438d8012b3f4ab79c (diff)
downloadcygnal-4a77aea0714cf0175279fbf65cdb8322a5af958b.tar.gz
cygnal-4a77aea0714cf0175279fbf65cdb8322a5af958b.tar.bz2
cygnal-4a77aea0714cf0175279fbf65cdb8322a5af958b.zip
* fhandler.h (enum del_lock_called_from): New enumeration.
(fhandler_base::del_my_locks): Declare taking a del_lock_called_from as argument. * fhandler.cc (fhandler_base::close): Call del_my_locks with "on_close". (fhandler_base::fixup_after_fork): Call del_my_locks with "after_fork". (fhandler_base::fixup_after_exec): Call del_my_locks with "after_exec". * flock.cc (fhandler_base::del_my_locks): Take del_lock_called_from as argument. Call node->del_my_locks with NULL handle in after_exec case. Explain why.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r--winsup/cygwin/fhandler.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index 465924190..4995d15b2 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -93,6 +93,12 @@ enum query_state {
query_write_attributes = 4
};
+enum del_lock_called_from {
+ on_close,
+ after_fork,
+ after_exec
+};
+
class fhandler_base
{
friend class dtable;
@@ -141,7 +147,7 @@ class fhandler_base
/* Used for advisory file locking. See flock.cc. */
long long unique_id;
- void del_my_locks (bool);
+ void del_my_locks (del_lock_called_from);
HANDLE read_state;
int wait_overlapped (bool, bool, DWORD *, DWORD = 0) __attribute__ ((regparm (3)));