有人可以告诉我我需要定义的标题来解决timespec结构 在win7平台上使用sem_timedwait()时是否支持? 注意我没有使用ptheads ...或进程间信号量 使用boost 1.5库...
这里是我所拥有的片段,但不确定还包括什么
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
#include <boost/thread/thread.hpp>
#include <semaphore.h>
#include <time.h>
...
sem_init(&sema, 0, 0);
sem_init(&semb, 0, 0);
...
struct timespec timeout = { 0, 0 };
clock_gettime( CLOCK_REALTIME, &timeout );
timeout.tv_sec += 5; //5 second timeout
CU_ASSERT_TRUE(sem_timedwait(&sema,&timeout)); // released by another boost::thread
...
答案 0 :(得分:0)
Windows本身不支持pthreads标准,因此您必须使用替代方法,例如pthreads-win32。
如果想使用boost,那么最好使用boost中的内容,在这种情况下,您应该使用boost.interprocess semaphore替换代码中pthreads信号量的使用。