31 #ifndef PTLIB_CRITICALSECTION_H
32 #define PTLIB_CRITICALSECTION_H
36 #if defined(SOLARIS) && !defined(__GNUC__)
43 # if __GNUC__ >= 4 && __GNUC_MINOR__ >= 2
44 # include <ext/atomicity.h>
46 # include <bits/atomicity.h>
50 #if P_NEEDS_GNU_CXX_NAMESPACE
51 #define EXCHANGE_AND_ADD(v,i) __gnu_cxx::__exchange_and_add(v,i)
53 #define EXCHANGE_AND_ADD(v,i) __exchange_and_add(v,i)
56 #endif // P_HAS_ATOMIC_INT
105 inline void Enter() {
Wait(); }
110 inline void Leave() {
Signal(); }
119 #include "msos/ptlib/critsec.h"
140 #elif defined(_STLP_INTERNAL_THREADS_H) && defined(_STLP_ATOMIC_INCREMENT) && defined(_STLP_ATOMIC_DECREMENT)
142 #elif defined(SOLARIS) && !defined(__GNUC__)
144 #elif defined(__GNUC__) && P_HAS_ATOMIC_INT
226 #if defined(_WIN32) || defined(DOC_PLUS_PLUS)
234 #elif defined(_STLP_INTERNAL_THREADS_H) && defined(_STLP_ATOMIC_INCREMENT) && defined(_STLP_ATOMIC_DECREMENT)
242 #elif defined(SOLARIS) && !defined(__GNUC__)
250 #elif defined(__GNUC__) && P_HAS_ATOMIC_INT
269 #endif // PTLIB_CRITICALSECTION_H