diff options
Diffstat (limited to 'cpukit/posix/src/cleanuppush.c')
-rw-r--r-- | cpukit/posix/src/cleanuppush.c | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/cpukit/posix/src/cleanuppush.c b/cpukit/posix/src/cleanuppush.c index cf640e0477..bf99b062bb 100644 --- a/cpukit/posix/src/cleanuppush.c +++ b/cpukit/posix/src/cleanuppush.c @@ -24,53 +24,6 @@ #include <rtems/score/threaddispatch.h> #include <rtems/posix/threadsup.h> -#ifndef HAVE_STRUCT__PTHREAD_CLEANUP_CONTEXT - -#include <rtems/score/chainimpl.h> -#include <rtems/score/isr.h> -#include <rtems/score/wkspace.h> -#include <rtems/posix/cancel.h> -#include <rtems/posix/pthreadimpl.h> - -/* - * 18.2.3.1 Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 - */ - -void pthread_cleanup_push( - void (*routine)( void * ), - void *arg -) -{ - POSIX_Cancel_Handler_control *handler; - Chain_Control *handler_stack; - POSIX_API_Control *thread_support; - - /* - * The POSIX standard does not address what to do when the routine - * is NULL. It also does not address what happens when we cannot - * allocate memory or anything else bad happens. - */ - if ( !routine ) - return; - - _Thread_Disable_dispatch(); - handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) ); - - if ( handler ) { - thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ]; - - handler_stack = &thread_support->Cancellation_Handlers; - - handler->routine = routine; - handler->arg = arg; - - _Chain_Append( handler_stack, &handler->Node ); - } - _Thread_Enable_dispatch(); -} - -#else /* HAVE_STRUCT__PTHREAD_CLEANUP_CONTEXT */ - void _pthread_cleanup_push( struct _pthread_cleanup_context *context, void ( *routine )( void * ), @@ -93,5 +46,3 @@ void _pthread_cleanup_push( _Thread_Enable_dispatch(); } - -#endif /* HAVE_STRUCT__PTHREAD_CLEANUP_CONTEXT */ |