diff options
Diffstat (limited to 'cpukit/posix/src')
-rw-r--r-- | cpukit/posix/src/cancelrun.c | 3 | ||||
-rw-r--r-- | cpukit/posix/src/cleanuppop.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/cpukit/posix/src/cancelrun.c b/cpukit/posix/src/cancelrun.c index fb93e1958f..59138ac1b7 100644 --- a/cpukit/posix/src/cancelrun.c +++ b/cpukit/posix/src/cancelrun.c @@ -41,7 +41,8 @@ void _POSIX_Threads_cancel_run( while ( !_Chain_Is_empty( handler_stack ) ) { _ISR_Disable( level ); - handler = (POSIX_Cancel_Handler_control *) _Chain_Tail( handler_stack ); + handler = (POSIX_Cancel_Handler_control *) + _Chain_Tail( handler_stack )->previous; _Chain_Extract_unprotected( &handler->Node ); _ISR_Enable( level ); diff --git a/cpukit/posix/src/cleanuppop.c b/cpukit/posix/src/cleanuppop.c index f9706bd408..f477d1f0c8 100644 --- a/cpukit/posix/src/cleanuppop.c +++ b/cpukit/posix/src/cleanuppop.c @@ -40,7 +40,8 @@ void pthread_cleanup_pop( return; _ISR_Disable( level ); - handler = (POSIX_Cancel_Handler_control *) _Chain_Tail( handler_stack ); + handler = (POSIX_Cancel_Handler_control *) + _Chain_Tail( handler_stack )->previous; _Chain_Extract_unprotected( &handler->Node ); _ISR_Enable( level ); |