summaryrefslogtreecommitdiffstats
path: root/lib/libthr/thread/thr_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libthr/thread/thr_private.h')
-rw-r--r--lib/libthr/thread/thr_private.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/libthr/thread/thr_private.h b/lib/libthr/thread/thr_private.h
index e84ba23..e336b2c 100644
--- a/lib/libthr/thread/thr_private.h
+++ b/lib/libthr/thread/thr_private.h
@@ -176,10 +176,10 @@ struct pthread_spinlock {
* Cleanup definitions.
*/
struct pthread_cleanup {
- struct pthread_cleanup *next;
- void (*routine)(void *args);
+ struct pthread_cleanup *prev;
+ void (*routine)(void *);
void *routine_arg;
- int onstack;
+ int onheap;
};
#define THR_CLEANUP_PUSH(td, func, arg) { \
@@ -187,12 +187,12 @@ struct pthread_cleanup {
\
__cup.routine = func; \
__cup.routine_arg = arg; \
- __cup.onstack = 1; \
- __cup.next = (td)->cleanup; \
+ __cup.onheap = 0; \
+ __cup.prev = (td)->cleanup; \
(td)->cleanup = &__cup;
#define THR_CLEANUP_POP(td, exec) \
- (td)->cleanup = __cup.next; \
+ (td)->cleanup = __cup.prev; \
if ((exec) != 0) \
__cup.routine(__cup.routine_arg); \
}
@@ -661,6 +661,9 @@ void _thread_bp_create(void);
void _thread_bp_death(void);
int _sched_yield(void);
+void _pthread_cleanup_push(void (*)(void *), void *);
+void _pthread_cleanup_pop(int);
+
/* #include <fcntl.h> */
#ifdef _SYS_FCNTL_H_
int __sys_fcntl(int, int, ...);
OpenPOWER on IntegriCloud