fix pthread_cleanup_pop(1) crash in non-thread-capable, static-linked programs
This commit is contained in:
parent
aab33ec0a3
commit
e3234d0109
2 changed files with 2 additions and 2 deletions
|
|
@ -5,6 +5,8 @@ void __do_cleanup_pop();
|
||||||
|
|
||||||
void _pthread_cleanup_push(struct __ptcb *cb, void (*f)(void *), void *x)
|
void _pthread_cleanup_push(struct __ptcb *cb, void (*f)(void *), void *x)
|
||||||
{
|
{
|
||||||
|
cb->__f = f;
|
||||||
|
cb->__x = x;
|
||||||
__do_cleanup_push(cb, f, x);
|
__do_cleanup_push(cb, f, x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,8 +46,6 @@ void pthread_exit(void *result)
|
||||||
void __do_cleanup_push(struct __ptcb *cb, void (*f)(void *), void *x)
|
void __do_cleanup_push(struct __ptcb *cb, void (*f)(void *), void *x)
|
||||||
{
|
{
|
||||||
struct pthread *self = pthread_self();
|
struct pthread *self = pthread_self();
|
||||||
cb->__f = f;
|
|
||||||
cb->__x = x;
|
|
||||||
cb->__next = self->cancelbuf;
|
cb->__next = self->cancelbuf;
|
||||||
self->cancelbuf = cb;
|
self->cancelbuf = cb;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue