本文整理汇总了C++中Obj::lockRead方法的典型用法代码示例。如果您正苦于以下问题:C++ Obj::lockRead方法的具体用法?C++ Obj::lockRead怎么用?C++ Obj::lockRead使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Obj
的用法示例。
在下文中一共展示了Obj::lockRead方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
// The usage example demonstrates a sample class which uses
// a 'bslmt::ReaderWriterLock' object. By integrating the code
// into this test driver, we have verified that it compiles.
// Next verify that the class can be instantiated.
// Plan:
// Construct an instance of the example class to assert that the
// the object can be instantiated.
//
// Testing:
// --------------------------------------------------------------------
if (veryVerbose) cout << endl
<< "Testing: USAGE EXAMPLE" << endl
<< "=============================" << endl;
{
}
}break;
case 5: {
// --------------------------------------------------------------------
// TEST: Reservered write locks
//
// Plan:
//
// Testing:
// void unlock()
// void upgradeToWriteLock();
// void lockReadReserveWrite();
// --------------------------------------------------------------------
if (veryVerbose) cout << endl
<< "Testing: Reserved write locks" << endl
<< "=============================" << endl;
{
Obj lock;
lock.lockReadReserveWrite();
ASSERT(0 == lock.tryLockRead());
lock.unlock();
ASSERT(0 != lock.tryLockWrite());
lock.unlock();
ASSERT(0 == lock.tryLockWrite());
ASSERT(0 != lock.tryLockRead());
lock.unlock();
}
if (veryVerbose) cout << endl
<< "Testing: 'lockReadReserveWrite'" << endl
<< "-------------------------------" << endl;
{
TestArguments args;
bslmt::ThreadUtil::Handle threadHandles[k_NTHREADS];
bslmt::ThreadAttributes attributes;
for (int i=0; i<k_NTHREADS;++i) {
bslmt::ThreadUtil::create(&threadHandles[i], attributes,
TestWriterThread2, &args );
}
args.d_barrierAll.wait();
for ( int i=0; i<k_NTHREADS;i++) {
args.d_barrier2.wait();
LOOP_ASSERT( i, (i+1) == args.d_count );
if (veryVeryVerbose) {
T_; P(args.d_count);
}
args.signalStop();
args.waitStart();
}