* cygwait.h (enum cw_wait_mask): Add cw_sig_restart. Add comments

to explain the meaning of the possible values.
	* cygwait.cc (is_cw_sig_restart): Define.
	(is_cw_sig_handle): Check for cw_sig_restart as well.
	(cygwait): Restart always if cw_sig_restart is set.
	* thread.cc (pthread::join): Call cygwait with cw_sig_restart flag
	to avoid having to handle signals at all.
This commit is contained in:
Corinna Vinschen
2015-02-23 13:56:01 +00:00
parent b6e4adaaf1
commit 093fe9b598
4 changed files with 25 additions and 11 deletions

View File

@@ -1,7 +1,7 @@
/* cygwait.h
Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
Red Hat, Inc.
Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
2015 Red Hat, Inc.
This file is part of Cygwin.
@@ -16,11 +16,12 @@
enum cw_wait_mask
{
cw_cancel = 0x0001,
cw_cancel_self = 0x0002,
cw_sig = 0x0004,
cw_sig_eintr = 0x0008,
cw_sig_cont = 0x0010
cw_cancel = 0x0001, /* Cancellation point. Return to caller. */
cw_cancel_self = 0x0002, /* Cancellation point. Cancel self. */
cw_sig = 0x0004, /* Handle signals. */
cw_sig_eintr = 0x0008, /* Caller handles signals. */
cw_sig_cont = 0x0010, /* Caller handles SIGCONT. */
cw_sig_restart = 0x0020 /* Restart even if SA_RESTART isn't set. */
};
extern LARGE_INTEGER cw_nowait_storage;