musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/thread/pthread_create.c 3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c
index 2098e752..9c24b844 100644
--- a/src/thread/pthread_create.c
+++ b/src/thread/pthread_create.c
@@ -45,6 +45,7 @@ static void docancel(struct pthread *self)
static void cancel_handler(int sig, siginfo_t *si, void *ctx)
{
struct pthread *self = __pthread_self();
+ if (si->si_code > 0 || si->si_pid != self->pid) return;
self->cancel = 1;
if (self->canceldisable || (!self->cancelasync && !self->cancelpoint))
return;
@@ -75,6 +76,8 @@ static struct {
static void rsyscall_handler(int sig, siginfo_t *si, void *ctx)
{
+ if (si->si_code > 0 || si->si_pid != __pthread_self()->pid) return;
+
if (rs.cnt == libc.threads_minus_1) return;
if (syscall6(rs.nr, rs.arg[0], rs.arg[1], rs.arg[2],
generated by cgit v1.2.1 (git 2.18.0) at 2025年10月04日 18:33:47 +0000

AltStyle によって変換されたページ (->オリジナル) /