diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/thread/cancellation.c | 7 | ||||
| -rw-r--r-- | src/thread/cancellation2.c | 0 | ||||
| -rw-r--r-- | src/thread/cancellation3.c | 0 | ||||
| -rw-r--r-- | src/thread/i386/cancellation2.s | 16 | ||||
| -rw-r--r-- | src/thread/i386/cancellation3.s | 8 | ||||
| -rw-r--r-- | src/thread/pthread_create.c | 5 | 
6 files changed, 36 insertions, 0 deletions
diff --git a/src/thread/cancellation.c b/src/thread/cancellation.c index ac1af30a..4976fedc 100644 --- a/src/thread/cancellation.c +++ b/src/thread/cancellation.c @@ -1,5 +1,12 @@  #include "pthread_impl.h" +#ifdef __pthread_register_cancel +#undef __pthread_register_cancel +#undef __pthread_unregister_cancel +#define __pthread_register_cancel __pthread_register_cancel_3 +#define __pthread_unregister_cancel __pthread_unregister_cancel_3 +#endif +  void __pthread_register_cancel(struct __ptcb *cb)  {  	struct pthread *self = pthread_self(); diff --git a/src/thread/cancellation2.c b/src/thread/cancellation2.c new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/thread/cancellation2.c diff --git a/src/thread/cancellation3.c b/src/thread/cancellation3.c new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/thread/cancellation3.c diff --git a/src/thread/i386/cancellation2.s b/src/thread/i386/cancellation2.s new file mode 100644 index 00000000..859aa239 --- /dev/null +++ b/src/thread/i386/cancellation2.s @@ -0,0 +1,16 @@ +.text +.global __pthread_register_cancel +.type   __pthread_register_cancel,%function +__pthread_register_cancel: +	pushl %eax +	call __pthread_register_cancel_3 +	popl %eax +	ret + +.global __pthread_unregister_cancel +.type   __pthread_unregister_cancel,%function +__pthread_unregister_cancel: +	pushl %eax +	call __pthread_unregister_cancel_3 +	popl %eax +	ret diff --git a/src/thread/i386/cancellation3.s b/src/thread/i386/cancellation3.s new file mode 100644 index 00000000..210293e2 --- /dev/null +++ b/src/thread/i386/cancellation3.s @@ -0,0 +1,8 @@ +.text +.global __pthread_unwind_next +.type   __pthread_unwind_next,%function +__pthread_unwind_next: +	pushl %eax +	call __pthread_unwind_next_3 +	popl %eax +	ret diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c index 785a82b8..9f22b4cf 100644 --- a/src/thread/pthread_create.c +++ b/src/thread/pthread_create.c @@ -1,5 +1,10 @@  #include "pthread_impl.h" +#ifdef __pthread_unwind_next +#undef __pthread_unwind_next +#define __pthread_unwind_next __pthread_unwind_next_3 +#endif +  void __pthread_unwind_next(struct __ptcb *cb)  {  	int i, j, not_finished;  | 
