posix_thread.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //========================================================================
  2. // GLFW 3.4 POSIX - www.glfw.org
  3. //------------------------------------------------------------------------
  4. // Copyright (c) 2002-2006 Marcus Geelnard
  5. // Copyright (c) 2006-2017 Camilla Löwy <elmindreda@glfw.org>
  6. //
  7. // This software is provided 'as-is', without any express or implied
  8. // warranty. In no event will the authors be held liable for any damages
  9. // arising from the use of this software.
  10. //
  11. // Permission is granted to anyone to use this software for any purpose,
  12. // including commercial applications, and to alter it and redistribute it
  13. // freely, subject to the following restrictions:
  14. //
  15. // 1. The origin of this software must not be misrepresented; you must not
  16. // claim that you wrote the original software. If you use this software
  17. // in a product, an acknowledgment in the product documentation would
  18. // be appreciated but is not required.
  19. //
  20. // 2. Altered source versions must be plainly marked as such, and must not
  21. // be misrepresented as being the original software.
  22. //
  23. // 3. This notice may not be removed or altered from any source
  24. // distribution.
  25. //
  26. //========================================================================
  27. #include <pthread.h>
  28. #define _GLFW_PLATFORM_TLS_STATE _GLFWtlsPOSIX posix
  29. #define _GLFW_PLATFORM_MUTEX_STATE _GLFWmutexPOSIX posix
  30. // POSIX-specific thread local storage data
  31. //
  32. typedef struct _GLFWtlsPOSIX
  33. {
  34. bool allocated;
  35. pthread_key_t key;
  36. } _GLFWtlsPOSIX;
  37. // POSIX-specific mutex data
  38. //
  39. typedef struct _GLFWmutexPOSIX
  40. {
  41. bool allocated;
  42. pthread_mutex_t handle;
  43. } _GLFWmutexPOSIX;