4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-31 19:40:33 +08:00
Corinna Vinschen 2e560a092c * flock.cc (LOCK_OBJ_NAME_LEN): Change to accommodate extra lf_ver
field.
	(class lockf_t): Add lf_ver field.
	(lockf_t::lockf_t): Initialize lf_ver to 0.
	(class inode_t): Change i_wait to i_cnt.  Change comment to explain
	change in usage.
	(inode_t:use): Rename from wait.  Make private.
	(inode_t::unuse): Rename from unwait.  Make private.
	(inode_t::inuse): Rename from waiting.  Make private.
	(inode_t::notused): New public method to set use count to 0.
	(inode_t::unlock_and_remove): New method to unlock node and to delete
	it if it's unused in current process.
	(fhandler_base::del_my_locks): Drop global list lock.  Drop variable
	no_locks_left.  Simpify unlocking and removing node by just calling
	unlock_and_remove.
	(fixup_lockf_after_exec): Call notused method for each node.
	(inode_t::get): Call use method.  Lock node only if outside of list
	lock.
	(inode_t::get_all_locks_list): Accommodate additional lf_ver field
	when creating lockf_t structure from object name.
	(lockf_t::create_lock_obj_attr): Accommodate additional lf_ver field
	when creating object name from lockf_t structure.  Handle
	STATUS_OBJECT_NAME_COLLISION gracefully in F_POSIX case as well.
	Change comment accordingly.  Increment lf_ver field rather than high
	byte of lf_wid field.  Simplify comment.
	(fhandler_disk_file::lock): Always call unlock_and_remove rather than
	just UNLOCK on node.
	(lf_setlock): Move ret definition where it's used.  Drop unneeded
	tests for obj being not NULL.  Only check for deadlock condition if the
	lock we're trying to establish is a POSIX lock.  Revamp object
	collecting and wait code to cover all cases.  Don't return with EDEADLK
	if blocking process can't be opened for synchronization in F_POSIX case,
	rather just wait like in F_FLOCK case.  Change system_printf to
	debug_printf in that case.  Only run WaitForMultipleObjects with high
	priority.  Close obj and process handles prior to locking node.
2011-08-29 13:50:25 +00:00
..
2011-02-15 15:56:03 +00:00
2009-01-21 17:14:39 +00:00
2011-04-29 10:38:12 +00:00
2010-08-30 01:57:37 +00:00
2010-08-30 01:57:37 +00:00
2009-09-22 02:49:15 +00:00
2009-09-22 02:49:15 +00:00
2010-01-01 19:28:15 +00:00
2009-01-21 17:14:39 +00:00
2011-02-15 15:56:03 +00:00
2011-06-06 05:02:13 +00:00
2009-08-01 19:52:46 +00:00
2011-06-06 05:02:13 +00:00
2009-10-31 13:24:06 +00:00
2009-07-07 20:12:44 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2010-01-14 18:46:02 +00:00
2011-01-20 11:09:21 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2011-04-04 12:23:36 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2010-08-30 01:57:37 +00:00
2011-06-06 05:02:13 +00:00
2011-04-04 12:23:36 +00:00
2011-05-10 16:43:34 +00:00
2010-07-19 18:22:40 +00:00
2010-04-10 05:47:54 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2011-06-12 20:15:26 +00:00
2011-06-06 05:02:13 +00:00
2009-01-21 17:14:39 +00:00
2011-06-06 05:02:13 +00:00
2011-08-09 09:14:28 +00:00
2011-03-29 10:42:11 +00:00
2011-05-28 18:17:09 +00:00
2011-06-06 05:02:13 +00:00
2010-08-30 01:57:37 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2011-04-29 10:38:12 +00:00
2011-06-06 05:02:13 +00:00
2011-04-29 10:38:12 +00:00
2011-04-29 10:38:12 +00:00
2009-01-21 17:14:39 +00:00
2011-06-06 05:02:13 +00:00
2011-06-06 05:02:13 +00:00
2011-05-04 22:12:15 +00:00
2010-03-13 19:34:35 +00:00
2010-08-30 01:57:37 +00:00
2010-08-30 01:57:37 +00:00
2010-06-21 19:55:12 +00:00
2011-06-06 05:02:13 +00:00
2009-08-01 19:52:46 +00:00
2011-01-20 11:09:21 +00:00
2011-03-16 21:10:51 +00:00