projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
report sem value overflows in sem_post
[musl]
/
src
/
thread
/
cancel_impl.c
diff --git
a/src/thread/cancel_impl.c
b/src/thread/cancel_impl.c
index
4f78a63
..
cf5082d
100644
(file)
--- a/
src/thread/cancel_impl.c
+++ b/
src/thread/cancel_impl.c
@@
-27,7
+27,8
@@
long (__syscall_cp)(long nr, long u, long v, long w, long x, long y, long z)
r = __syscall_cp_asm(&self->cp_sp, nr, u, v, w, x, y, z);
self->cp_ip = old_ip;
self->cp_sp = old_sp;
r = __syscall_cp_asm(&self->cp_sp, nr, u, v, w, x, y, z);
self->cp_ip = old_ip;
self->cp_sp = old_sp;
- if (r == -EINTR && self->cancel && !self->canceldisable) __cancel();
+ if (r==-EINTR && nr!=SYS_close && self->cancel && !self->canceldisable)
+ __cancel();
return r;
}
return r;
}
@@
-60,7
+61,7
@@
static void cancel_handler(int sig, siginfo_t *si, void *ctx)
void __testcancel()
{
void __testcancel()
{
- pthread_t self =
__
pthread_self();
+ pthread_t self = pthread_self();
if (self->cancel && !self->canceldisable)
__cancel();
}
if (self->cancel && !self->canceldisable)
__cancel();
}