本文整理汇总了C++中SharedMemory::lock_for_read方法的典型用法代码示例。如果您正苦于以下问题:C++ SharedMemory::lock_for_read方法的具体用法?C++ SharedMemory::lock_for_read怎么用?C++ SharedMemory::lock_for_read使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharedMemory
的用法示例。
在下文中一共展示了SharedMemory::lock_for_read方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SharedMemory
void
do_child(unsigned int child_id, QASharedMemoryHeader *header)
{
cout << "Child " << child_id << " is alive" << endl;
// This will attach to the existing shmem segment,
// use ipcs to check
SharedMemory *sr = new SharedMemory(MAGIC_TOKEN, header,
/* read only */ false,
/* create */ false,
/* destroy */ false);
int *mc = (int *)sr->memptr();
cout << "Child " << child_id << " entering loop" << endl;
while ( ! quit ) {
int m;
m = mc[1]; m++;
//cout << "Child: sleeping" << endl;
usleep(12932);
//cout << "Child: wasting time" << endl;
WASTETIME;
//cout << "Child: done wasting time, setting to " << m << endl;
// mc[1] = m;
cout << "Child " << child_id << ": locking (read)" << endl;
sr->lock_for_read();
cout << "Child " << child_id << ": locked (read)" << endl;
m = mc[0]; m++;
usleep(23419);
WASTETIME;
cout << "Child " << child_id << ": unlocking (read)" << endl;
sr->unlock();
cout << "Child " << child_id << ": locking (write)" << endl;
sr->lock_for_write();
cout << "Child " << child_id << ": locked (write)" << endl;
mc[0] = m;
cout << "Child " << child_id << ": unlocking (write)" << endl;
sr->unlock();
//cout << "Child: unlocked" << endl;
// std::cout << "Child " << child_id << ": unprotected: " << mc[1] << " protected: " << mc[0] << endl;
usleep(1231);
}
cout << "Child " << child_id << " exiting" << endl;
delete sr;
}