* ntdll.h (IsEventSignalled): New inline function.

* cygthread.cc (cygthread::terminate_thread): Use IsEventSignalled in
	place of WaitForSingleObject on event with 0 timeout.
	* fhandler.cc (fhandler_base_overlapped::has_ongoing_io): Ditto.
	* fhandler_fifo.cc (fhandler_fifo::open_nonserver): Ditto.
	(fhandler_fifo::wait): Ditto.
	* fhandler_termios.cc (fhandler_termios::bg_check): Ditto.
	* select.cc (verify_tty_slave): Ditto.
	* thread.cc (pthread::testcancel): Ditto.
This commit is contained in:
Corinna Vinschen
2011-04-29 08:27:11 +00:00
parent 12eac211c9
commit bd139e52b4
8 changed files with 36 additions and 8 deletions

View File

@ -1,7 +1,7 @@
/* cygthread.cc
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008,
2009 2010 Red Hat, Inc.
2009, 2010, 2011 Red Hat, Inc.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
@ -12,6 +12,7 @@ details. */
#include <stdlib.h>
#include "sigproc.h"
#include "cygtls.h"
#include "ntdll.h"
#undef CloseHandle
@ -298,7 +299,7 @@ cygthread::terminate_thread ()
if (!inuse || exiting)
goto force_notterminated;
if (ev && !(terminated = WaitForSingleObject (ev, 0) != WAIT_OBJECT_0))
if (ev && !(terminated = !IsEventSignalled (ev)))
ResetEvent (ev);
MEMORY_BASIC_INFORMATION m;