Apply wait_cancel patch
This commit is contained in:
		| @@ -1,3 +1,10 @@ | ||||
| 2003-01-14  Thomas Pfaff  <tpfaff@gmx.net> | ||||
|  | ||||
| 	* wait.cc: Include thread.h | ||||
| 	(wait4): Add pthread_testcancel call. | ||||
| 	Wait for child process and cancellation event. | ||||
| 	* thread.cc: Update list of cancellation points. | ||||
|  | ||||
| 2003-01-14  Thomas Pfaff  <tpfaff@gmx.net> | ||||
|  | ||||
| 	* signal.cc (sleep): Add pthread_testcancel call. | ||||
|   | ||||
| @@ -481,10 +481,10 @@ sigwaitinfo () | ||||
| system () | ||||
| tcdrain () | ||||
| *usleep () | ||||
| wait () | ||||
| wait3() | ||||
| *wait () | ||||
| *wait3() | ||||
| waitid () | ||||
| waitpid () | ||||
| *waitpid () | ||||
| write () | ||||
| writev () | ||||
|  | ||||
|   | ||||
| @@ -15,6 +15,7 @@ details. */ | ||||
| #include "cygerrno.h" | ||||
| #include "sigproc.h" | ||||
| #include "perthread.h" | ||||
| #include "thread.h" | ||||
|  | ||||
| /* This is called _wait and not wait because the real wait is defined | ||||
|    in libc/syscalls/syswait.c.  It calls us.  */ | ||||
| @@ -51,6 +52,8 @@ wait4 (int intpid, int *status, int options, struct rusage *r) | ||||
|   HANDLE waitfor; | ||||
|   bool sawsig; | ||||
|  | ||||
|   pthread_testcancel (); | ||||
|  | ||||
|   while (1) | ||||
|     { | ||||
|       sig_dispatch_pending (0); | ||||
| @@ -84,7 +87,7 @@ wait4 (int intpid, int *status, int options, struct rusage *r) | ||||
|       if ((waitfor = w->ev) == NULL) | ||||
| 	goto nochildren; | ||||
|  | ||||
|       res = WaitForSingleObject (waitfor, INFINITE); | ||||
|       res = pthread::cancelable_wait (waitfor, INFINITE); | ||||
|  | ||||
|       sigproc_printf ("%d = WaitForSingleObject (...)", res); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user