1

有人可以告诉我在 win7 平台上使用 sem_timedwait() 时需要定义的标头来解析 timespec 结构
...是否支持?注意我不使用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
...
4

1 回答 1

0

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

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

于 2014-02-03T11:29:19.783 回答