diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-11-24 15:58:26 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-11-24 16:00:14 +0100 |
commit | f6a1ef9fdb9df6beea4251f4440f6db5c6a473b9 (patch) | |
tree | 7359a0b2c5a3e8e16da7facaaf46041fc4ef1462 /cpukit/posix/src/cleanuppush.c | |
parent | bsp/altera-cyclone-v: Add fatal extension handler (diff) | |
download | rtems-f6a1ef9fdb9df6beea4251f4440f6db5c6a473b9.tar.bz2 |
posix: Require struct _pthread_cleanup_context
This structure is available in Newlib since 2013-11-29 (Git commit
a534dfd26e765047621acd0eda656ded886e7108).
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 */ |