在win7平台上支持提升sem_timedwait()?

时间:2013-06-24 19:28:29

标签: boost

有人可以告诉我我需要定义的标题来解决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
...

1 个答案:

答案 0 :(得分:0)

Windows本身不支持pthreads标准,因此您必须使用替代方法,例如pthreads-win32

如果想使用boost,那么最好使用boost中的内容,在这种情况下,您应该使用boost.interprocess semaphore替换代码中pthreads信号量的使用。