Cygwin: raise: change to call pthread_kill
POSIX requires that raise(3) is equivalent to pthread_kill(pthread_self(), sig); in multi-threaded applications. Our raise just called kill(sig). Fix that. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
4d738e0f62
commit
a52396bd07
|
@ -89,3 +89,6 @@ Bug Fixes
|
|||
|
||||
- Disallow seteuid on disabled or locked out accounts.
|
||||
Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00197.html
|
||||
|
||||
- Fix raise to work as required by POSIX.
|
||||
(Partially) addresses: https://cygwin.com/ml/cygwin/2019-01/msg00149.html
|
||||
|
|
|
@ -300,7 +300,10 @@ _pinfo::kill (siginfo_t& si)
|
|||
extern "C" int
|
||||
raise (int sig)
|
||||
{
|
||||
return kill (myself->pid, sig);
|
||||
pthread *thread = _my_tls.tid;
|
||||
if (!thread)
|
||||
return kill (myself->pid, sig);
|
||||
return pthread_kill (thread, sig);
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
Loading…
Reference in New Issue