From e5b78e248ee6ac4920e9f56c9cd72aecf66eef7f Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 12 Dec 2002 01:04:18 +0000 Subject: 2002-12-11 Vladimir Nesic * src/cancelrun.c, src/cleanuppop.c: Get the last real node not the permanent null last node. --- cpukit/posix/ChangeLog | 5 +++++ cpukit/posix/src/cancelrun.c | 3 ++- cpukit/posix/src/cleanuppop.c | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) (limited to 'cpukit/posix') diff --git a/cpukit/posix/ChangeLog b/cpukit/posix/ChangeLog index fb25b26c62..b691782189 100644 --- a/cpukit/posix/ChangeLog +++ b/cpukit/posix/ChangeLog @@ -1,3 +1,8 @@ +2002-12-11 Vladimir Nesic + + * src/cancelrun.c, src/cleanuppop.c: Get the last real node not the + permanent null last node. + 2002-12-09 Ralf Corsepius * include/Makefile.am: Remove. 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 ); -- cgit v1.2.3