Fix sigwait and pthread_kill return values in case of error

* signal.cc (sigwait): Fix return value to reflect errno in case of
	error according to POSIX.  Never return EINTR.
	* thread.cc (pthread_kill): Return errno if sig_send failed.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen
2015-10-30 16:05:43 +01:00
parent ff3c4a7d2f
commit 8f97c045b8
4 changed files with 23 additions and 3 deletions

View File

@ -3056,7 +3056,11 @@ pthread_kill (pthread_t thread, int sig)
if (!thread->valid)
rval = ESRCH;
else if (sig)
rval = sig_send (NULL, si, thread->cygtls);
{
rval = sig_send (NULL, si, thread->cygtls);
if (rval == -1)
rval = get_errno ();
}
else
switch (WaitForSingleObject (thread->win32_obj_id, 0))
{