You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
1.2 KiB

28 years ago
  1. #if WIN32|WINNT
  2. #define MUTEX_T void
  3. #define MUTEX_INIT(a,b) (a=CreateMutex(b,FALSE,NULL))
  4. #define MUTEX_DESTROY(a) CloseHandle(a)
  5. #define MUTEX_LOCK(a) WaitForSingleObject(a,INFINITE)
  6. #define MUTEX_UNLOCK(a) ReleaseMutex(a)
  7. #define TLS_ALLOC(a) (a=TlsAlloc())
  8. #define TLS_NOT_ALLOCED 0xFFFFFFFF
  9. #define TLS_GET_DATA(a) TlsGetValue(a)
  10. #define TLS_SET_DATA(a,b) TlsSetValue(a,b)
  11. #define TLS_FREE(a) TlsFree(a)
  12. #else /*PTHREADS*/
  13. #define MUTEX_T pthread_mutex_t
  14. #define MUTEX_INIT(a,b) pthread_mutex_init(a,b)
  15. #define MUTEX_DESTROY(a) pthread_mutex_destroy(a)
  16. #define MUTEX_LOCK(a) pthread_mutex_lock(a)
  17. #define MUTEX_UNLOCK(a) pthread_mutex_unlock(a)
  18. #define TLS_ALLOC(a)
  19. #define TLS_NOT_ALLOCED NULL
  20. #define TLS_GET_DATA(a) pthread_getspecific(a)
  21. #define TLS_SET_DATA(a,b) pthread_setspecific(a,b)
  22. #define TLS_FREE(a)
  23. #endif
  24. extern static void *php3_mutex_alloc( void );
  25. extern static void php3_mutex_free( void *mutexp );
  26. extern static void php3_mutex_lock( void *mutexp );
  27. extern static void php3_mutex_unlock( void *mutexp );
  28. extern int php3_tls_init(void *key,void *tsd,int size);
  29. extern int php3_tls_free(void *key, void *tsd);
  30. extern int php3_tls_startup(void *key);
  31. extern int php3_tls_shutdown(void *key);