threads.h 687 B

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef XML_THREADS_H_PRIVATE__
  2. #define XML_THREADS_H_PRIVATE__
  3. #include <libxml/threads.h>
  4. #ifdef LIBXML_THREAD_ENABLED
  5. #ifdef HAVE_PTHREAD_H
  6. #include <pthread.h>
  7. #define HAVE_POSIX_THREADS
  8. #elif defined(_WIN32)
  9. #define WIN32_LEAN_AND_MEAN
  10. #include <windows.h>
  11. #define HAVE_WIN32_THREADS
  12. #endif
  13. #endif
  14. /*
  15. * xmlMutex are a simple mutual exception locks
  16. */
  17. struct _xmlMutex {
  18. #ifdef HAVE_POSIX_THREADS
  19. pthread_mutex_t lock;
  20. #elif defined HAVE_WIN32_THREADS
  21. CRITICAL_SECTION cs;
  22. #else
  23. int empty;
  24. #endif
  25. };
  26. XML_HIDDEN void
  27. xmlInitMutex(xmlMutexPtr mutex);
  28. XML_HIDDEN void
  29. xmlCleanupMutex(xmlMutexPtr mutex);
  30. #endif /* XML_THREADS_H_PRIVATE__ */