diff options
Diffstat (limited to 'implement.h')
| -rw-r--r-- | implement.h | 62 | 
1 files changed, 21 insertions, 41 deletions
diff --git a/implement.h b/implement.h index 70836dc..71ebf05 100644 --- a/implement.h +++ b/implement.h @@ -27,9 +27,8 @@  #ifndef _IMPLEMENT_H  #define _IMPLEMENT_H -#define PT_STDCALL __stdcall - -#include <semaphore.h> +/* changed include from <semaphore.h> to use local file during development */ +#include "semaphore.h"  typedef enum {    /* @@ -161,22 +160,6 @@ struct pthread_condattr_t_ {    int pshared;  }; -#define RW_MAGIC    0x19283746 - -struct pthread_rwlock_t_ { -    pthread_mutex_t rw_lock;         /* basic lock on this struct */ -    pthread_cond_t  rw_condreaders;  /* for reader threads waiting */ -    pthread_cond_t  rw_condwriters;  /* for writer threads waiting */ -    int             rw_magic;        /* for error checking */ -    int             rw_nwaitreaders; /* the number waiting */ -    int             rw_nwaitwriters; /* the number waiting */ -    int             rw_refcount;     /* -1 if writer has the lock, -                                        else # readers holding the lock */ -}; - -struct pthread_rwlockattr_t_ { -  int pshared; -};  struct ThreadKeyAssoc {    /* @@ -274,27 +257,18 @@ struct ThreadKeyAssoc {   */  #define EXCEPTION_PTHREAD_SERVICES	\       MAKE_SOFTWARE_EXCEPTION( SE_ERROR, \ -			      _PTHREAD_SERVICES_FACILITY, \ -			      _PTHREAD_SERVICES_ERROR ) +			      PTHREAD_SERVICES_FACILITY, \ +			      PTHREAD_SERVICES_ERROR ) -#define _PTHREAD_SERVICES_FACILITY		0xBAD -#define _PTHREAD_SERVICES_ERROR			0xDEED -/* - * Services available through EXCEPTION_PTHREAD_SERVICES - */ -#define _PTHREAD_EPS_CANCEL       0 -#define _PTHREAD_EPS_EXIT         1 +#define PTHREAD_SERVICES_FACILITY		0xBAD +#define PTHREAD_SERVICES_ERROR			0xDEED  #else  #ifdef __cplusplus -/* - * Exceptions similar to the SEH exceptions above. - */ -class Pthread_exception_cancel {}; -class Pthread_exception_exit {}; +class Pthread_exception {};  #else /* __cplusplus */ @@ -313,7 +287,12 @@ extern pthread_key_t _pthread_selfThreadKey;  extern pthread_key_t _pthread_cleanupKey;  extern CRITICAL_SECTION _pthread_mutex_test_init_lock;  extern CRITICAL_SECTION _pthread_cond_test_init_lock; -extern CRITICAL_SECTION _pthread_rwlock_test_init_lock; + +/* Declared in misc.c */ +#ifdef NEED_CALLOC +#define calloc(n, s) _pthread_calloc(n, s) +void *_pthread_calloc(size_t n, size_t s); +#endif  #ifdef __cplusplus @@ -335,12 +314,7 @@ void _pthread_threadDestroy (pthread_t tid);  void _pthread_cleanupStack (void); -#if ! defined (__MINGW32__) || defined (__MSVCRT__) -unsigned PT_STDCALL -#else -void -#endif -_pthread_threadStart (ThreadParms * threadParms); +void *_pthread_threadStart (ThreadParms * threadParms);  void _pthread_callUserDestroyRoutines (pthread_t thread); @@ -353,6 +327,12 @@ void _pthread_tkAssocDestroy (ThreadKeyAssoc * assoc);  int _pthread_sem_timedwait (sem_t * sem,  			    const struct timespec * abstime); +#ifdef NEED_SEM +void _pthread_decrease_semaphore(sem_t * sem); +BOOL _pthread_increase_semaphore(sem_t * sem, +                                 unsigned int n); +#endif /* NEED_SEM */ +  #ifdef __cplusplus  }  #endif /* __cplusplus */ @@ -365,7 +345,7 @@ int _pthread_sem_timedwait (sem_t * sem,   *   * Patch by Anders Norlander <anorland@hem2.passagen.se>   */ -#if defined(__CYGWIN32__) || defined(__CYGWIN__) +#if defined(__CYGWIN32__) || defined(__CYGWIN__) || defined(_PTHREAD_CREATETHREAD)  /*    * Macro uses args so we can cast start_proc to LPTHREAD_START_ROUTINE  | 
