本文整理汇总了C++中SemaphoreImpl类的典型用法代码示例。如果您正苦于以下问题:C++ SemaphoreImpl类的具体用法?C++ SemaphoreImpl怎么用?C++ SemaphoreImpl使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SemaphoreImpl类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: configReader
void configReader(PortReader& reader) {
stateMutex.wait();
readActive = true;
readBackground = true;
readDelegate = &reader;
consume.post(); // just do this once
stateMutex.post();
}
开发者ID:johnty,项目名称:libYARP_OS_iOS,代码行数:8,代码来源:Port.cpp
示例2: finishReading
void finishReading() {
if (!readBackground) {
stateMutex.wait();
closed = true;
consume.post();
consume.post();
stateMutex.post();
}
}
开发者ID:johnty,项目名称:libYARP_OS_iOS,代码行数:9,代码来源:Port.cpp
示例3: reply
bool reply(PortWriter& writer, bool drop, bool /*interrupted*/) {
// send reply even if interrupt has happened in interim
if (!replyDue) return false;
replyDue = false;
dropDue = drop;
writeDelegate = &writer;
consume.post();
produce.wait();
bool result = readResult;
return result;
}
开发者ID:johnty,项目名称:libYARP_OS_iOS,代码行数:11,代码来源:Port.cpp
示例4: clear
virtual ~Private()
{
Port *closePort = nullptr;
stateSema.wait();
if (port!=nullptr) {
closePort = port;
}
stateSema.post();
if (closePort!=nullptr) {
closePort->close();
}
stateSema.wait();
clear();
//stateSema.post(); // never give back mutex
}
开发者ID:jgvictores,项目名称:yarp,代码行数:15,代码来源:PortReaderBufferBase.cpp
示例5: read
bool read(PortReader& reader, bool willReply = false) {
// called by user
// user claimed they would reply to last read, but then
// decided not to.
if (replyDue) {
Bottle emptyMessage;
reply(emptyMessage,false,false);
replyDue = false;
dropDue = false;
}
if (willReply) {
replyDue = true;
}
stateMutex.wait();
readActive = true;
readDelegate = &reader;
writeDelegate = NULL;
this->willReply = willReply;
consume.post(); // happy consumer
stateMutex.post();
produce.wait();
stateMutex.wait();
if (!readBackground) {
readDelegate = NULL;
}
stateMutex.post();
bool result = readResult;
return result;
}
开发者ID:johnty,项目名称:libYARP_OS_iOS,代码行数:32,代码来源:Port.cpp
示例6: openable
void openable() {
stateMutex.wait();
closed = false;
opened = true;
stateMutex.post();
}
开发者ID:johnty,项目名称:libYARP_OS_iOS,代码行数:6,代码来源:Port.cpp
示例7: promiseType
void promiseType(const Type& typ) {
stateMutex.wait();
this->typ = typ;
stateMutex.post();
}
开发者ID:yuhuazou,项目名称:yarp,代码行数:5,代码来源:Port.cpp
示例8: getType
Type getType() {
stateMutex.wait();
Type t = typ;
stateMutex.post();
return t;
}
开发者ID:yuhuazou,项目名称:yarp,代码行数:6,代码来源:Port.cpp
示例9: resumeFull
void resumeFull() {
while (produce.check()) {}
while (readBlock.check()) {}
resume();
readBlock.post();
}
开发者ID:yuhuazou,项目名称:yarp,代码行数:6,代码来源:Port.cpp
注:本文中的SemaphoreImpl类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论