This is pthread_dce.h in view mode; [Download] [Up]
/*
* pthread_dce.h
*/
#ifndef _pthread_dce_
#define _pthread_dce_
#ifdef __cplusplus
extern "C" {
#endif
/*
* These data types are used by POSIX Draft 4 and DCE threads, but not by
* Linux (POSIX) threads.
*/
typedef void *pthread_addr_t;
typedef void *(*pthread_startroutine_t)(void *);
typedef void (*pthread_cleanup_t)(void *);
typedef void (*pthread_destructor_t)(void *);
typedef void (*pthread_initroutine_t)(void);
extern pthread_attr_t pthread_attr_default;
extern pthread_mutexattr_t pthread_mutexattr_default;
extern pthread_condattr_t pthread_condattr_default;
#ifndef CANCEL_ON
#define CANCEL_ON (1)
#endif
#ifndef CANCEL_OFF
#define CANCEL_OFF (0)
#endif
#ifdef _DCE_COMPAT_
#define TH_CHECK(st,str) \
{ \
if( st != SUCCESS ) \
{ int err; \
pthread_get_errno_np( NULL, &err ); \
pthread_lock_global_np(); \
fprintf( stderr, "%s failed:", str ); \
fprintf( stderr, "%d:%s ", __LINE__, __FILE__ ); \
fprintf( stderr, "%s:%d\n", sys_errlist[err] ); \
_exit(1); \
pthread_unlock_global_np(); \
} \
}
#define pthread_attr_create (pthd4_attr_create)
#define pthread_attr_delete (pthd4_attr_delete )
#define pthread_attr_setstacksize (pthd4_attr_setstacksize)
#define pthread_attr_getstacksize (pthd4_attr_getstacksize)
#define pthread_create (pthd4_create)
#define pthread_detach (pthd4_detach)
#define pthread_exit (pthd4_exit)
#define pthread_join (pthd4_join)
#define pthread_self (pthd4_self)
#define pthread_mutex_init (pthd4_mutex_init)
#define pthread_mutex_destroy (pthd4_mutex_destroy)
#define pthread_cond_init (pthd4_cond_init)
#define pthread_cond_destroy (pthd4_cond_destroy)
#define pthread_setspecific (pthd4_setspecific)
#define pthread_getspecific (pthd4_getspecific)
#define pthread_cancel (pthd4_cancel)
#define pthread_testcancel (pthd4_testcancel)
#define pthread_get_expiration_np (pthd4_get_expiration_np)
#define pthread_yield (pthd4_yield)
#define pthread_once (pthd4_once)
#define pthread_keycreate (pthd4_keycreate)
#define pthread_setcancel (pthd4_setcancel)
#define pthread_setasynccancel (pthd4_setasynccancel)
#endif
extern int
pthd4_keycreate( pthread_key_t *key, pthread_destructor_t destructor );
extern int
pthd4_setcancel( int state );
extern int
pthd4_setasynccancel( int state );
extern void
pthd4_yield( void );
extern int
pthd4_attr_create( pthread_attr_t *attr );
extern int
pthd4_attr_delete ( pthread_attr_t *attr);
extern long
pthd4_attr_getstacksize( pthread_attr_t attr );
extern int
pthd4_attr_setstacksize( pthread_attr_t *attr, long stacksize );
extern int
pthd4_create( pthread_t *thread,
pthread_attr_t attr,
pthread_startroutine_t start_routine,
pthread_addr_t arg );
extern int
pthd4_detach( pthread_t *thread );
extern void
pthd4_exit( pthread_addr_t status );
extern int
pthd4_join( pthread_t thread, pthread_addr_t *status );
extern pthread_t
pthd4_self( void );
extern int
pthd4_mutex_init( pthread_mutex_t *mutex, pthread_mutexattr_t attr );
extern int
pthd4_mutex_destroy( pthread_mutex_t *mutex );
extern int
pthd4_mutex_lock( pthread_mutex_t *mutex );
extern int
pthd4_mutex_trylock( pthread_mutex_t *mutex );
extern int
pthd4_mutex_unlock( pthread_mutex_t *mutex );
extern int
pthd4_cond_init( pthread_cond_t *cond, pthread_condattr_t attr );
extern int
pthd4_cond_destroy( pthread_cond_t *cond );
extern int
pthd4_cond_broadcast( pthread_cond_t *cond );
extern int
pthd4_cond_signal( pthread_cond_t *cond );
extern int
pthd4_cond_wait( pthread_cond_t *cond, pthread_mutex_t *mutex );
extern int
pthd4_cond_timedwait( pthread_cond_t *cond,
pthread_mutex_t *mutex,
struct timespec *abstime );
extern int
pthd4_once( pthread_once_t *once_block, void (*init_routine)(void) );
int
pthd4_setspecific( pthread_key_t key, pthread_addr_t value );
extern int
pthd4_getspecific( pthread_key_t key, pthread_addr_t *value );
extern int
pthd4_cancel( pthread_t thread );
extern void
pthd4_testcancel( void );
extern int
pthd4_get_expiration_np( struct timespec *delta, struct timespec *abstime );
extern int
pthd4_delay_np( struct timespec *interval );
#ifdef __cplusplus
}
#endif
#endif
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.