21 #include <boost/date_time.hpp>
24 #define ETIME ETIMEDOUT
43 #if !defined(HAVE_PTHREAD_YIELD_ONE_ARG) && !defined(HAVE_PTHREAD_YIELD_ZERO_ARG)
45 #ifdef HAVE_SCHED_YIELD
46 #define pthread_yield() sched_yield()
47 #elif defined(HAVE_PTHREAD_YIELD_NP)
48 #define pthread_yield() pthread_yield_np()
58 #define set_timespec(ABSTIME,SEC) \
62 (ABSTIME).tv_sec=tv.tv_sec+(time_t) (SEC);\
63 (ABSTIME).tv_nsec=tv.tv_usec*1000;\
66 #ifndef set_timespec_nsec
67 #define set_timespec_nsec(ABSTIME,NSEC) \
69 boost::posix_time::ptime mytime(boost::posix_time::microsec_clock::local_time());\
70 boost::posix_time::ptime epoch(boost::gregorian::date(1970,1,1));\
71 uint64_t t_mark= (mytime-epoch).total_microseconds();\
72 uint64_t now= t_mark + (NSEC/100); \
73 (ABSTIME).tv_sec= (time_t) (now / 10000000UL); \
74 (ABSTIME).tv_nsec= (long) (now % 10000000UL * 100 + ((NSEC) % 100)); \
79 #define safe_mutex_assert_owner(mp)
80 #define safe_mutex_assert_not_owner(mp)
84 #if !defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && ! defined(pthread_attr_setstacksize)
85 #define pthread_attr_setstacksize(A,B) pthread_dummy(0)
89 #ifdef THREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
90 extern pthread_mutexattr_t my_fast_mutexattr;
91 #define MY_MUTEX_INIT_FAST &my_fast_mutexattr
93 #define MY_MUTEX_INIT_FAST NULL
TODO: Rename this file - func.h is stupid.
Visibility Control Macros.