pthreads: Add pthread_cleanup_push() and pthread_cleanup_pop()

This commit is contained in:
Gregory Nutt
2016-12-08 09:27:13 -06:00
parent 7632dfd6c7
commit a1fbc2ad0d
14 changed files with 327 additions and 13 deletions
+2
View File
@@ -64,6 +64,8 @@
"pthread_barrier_init","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_barrier_t*","FAR const pthread_barrierattr_t*","unsigned int"
"pthread_barrier_wait","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_barrier_t*"
"pthread_cancel","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t"
"pthread_cleanup_pop","pthread.h","defined(CONFIG_PTHREAD_CLEANUP)","void","int"
"pthread_cleanup_push","pthread.h","defined(CONFIG_PTHREAD_CLEANUP)","void","pthread_cleanup_t","FAR void*"
"pthread_cond_broadcast","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_cond_t*"
"pthread_cond_destroy","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_cond_t*"
"pthread_cond_init","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_cond_t*","FAR const pthread_condattr_t*"
1 _exit unistd.h void int
64 pthread_barrier_init pthread.h !defined(CONFIG_DISABLE_PTHREAD) int FAR pthread_barrier_t*
65 pthread_barrier_wait pthread.h !defined(CONFIG_DISABLE_PTHREAD) int FAR pthread_barrier_t*
66 pthread_cancel pthread.h !defined(CONFIG_DISABLE_PTHREAD) int pthread_t
67 pthread_cleanup_pop pthread.h defined(CONFIG_PTHREAD_CLEANUP) void int
68 pthread_cleanup_push pthread.h defined(CONFIG_PTHREAD_CLEANUP) void pthread_cleanup_t
69 pthread_cond_broadcast pthread.h !defined(CONFIG_DISABLE_PTHREAD) int FAR pthread_cond_t*
70 pthread_cond_destroy pthread.h !defined(CONFIG_DISABLE_PTHREAD) int FAR pthread_cond_t*
71 pthread_cond_init pthread.h !defined(CONFIG_DISABLE_PTHREAD) int FAR pthread_cond_t*
+4
View File
@@ -304,6 +304,10 @@ SYSCALL_LOOKUP(up_assert, 2, STUB_up_assert)
SYSCALL_LOOKUP(pthread_kill, 2, STUB_pthread_kill)
SYSCALL_LOOKUP(pthread_sigmask, 3, STUB_pthread_sigmask)
# endif
# ifdef CONFIG_PTHREAD_CLEANUP
SYSCALL_LOOKUP(pthread_cleanup_push, 2, STUB_pthread_cleanup_push)
SYSCALL_LOOKUP(pthread_cleanup_pop, 1, STUB_pthread_cleanup_pop)
# endif
#endif
/* The following are defined only if message queues are enabled */
+4
View File
@@ -311,6 +311,10 @@ uintptr_t STUB_pthread_kill(int nbr, uintptr_t parm1, uintptr_t parm2);
uintptr_t STUB_pthread_sigmask(int nbr, uintptr_t parm1, uintptr_t parm2,
uintptr_t parm3);
uintptr_t STUB_pthread_cleanup_pop(int nbr, uintptr_t parm1);
uintptr_t STUB_pthread_cleanup_push(int nbr, uintptr_t parm1,
uintptr_t parm2);
/* The following are defined only if message queues are enabled */
uintptr_t STUB_mq_close(int nbr, uintptr_t parm1);