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.
|
- Disallow seteuid on disabled or locked out accounts.
|
||||||
Addresses: https://cygwin.com/ml/cygwin/2019-01/msg00197.html
|
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
|
extern "C" int
|
||||||
raise (int sig)
|
raise (int sig)
|
||||||
{
|
{
|
||||||
|
pthread *thread = _my_tls.tid;
|
||||||
|
if (!thread)
|
||||||
return kill (myself->pid, sig);
|
return kill (myself->pid, sig);
|
||||||
|
return pthread_kill (thread, sig);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
Loading…
Reference in New Issue