当前位置: 首页>>代码示例>>C++>>正文


C++ shared_mutex::lock方法代码示例

本文整理汇总了C++中boost::shared_mutex::lock方法的典型用法代码示例。如果您正苦于以下问题:C++ shared_mutex::lock方法的具体用法?C++ shared_mutex::lock怎么用?C++ shared_mutex::lock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在boost::shared_mutex的用法示例。


在下文中一共展示了shared_mutex::lock方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: f

void f()
{
#if defined BOOST_THREAD_USES_CHRONO
  t0 = Clock::now();
  m.lock();
  t1 = Clock::now();
  m.unlock();
#else
  //time_point t0 = Clock::now();
  m.lock();
  //time_point t1 = Clock::now();
  m.unlock();
  //ns d = t1 - t0 - ms(250);
  //BOOST_TEST(d < max_diff);
#endif
}
开发者ID:LocutusOfBorg,项目名称:poedit,代码行数:16,代码来源:lock_pass.cpp

示例2: removeTrack

bool TrackManager::removeTrack( int pIndex)
{
	mySharedMutex.lock();
	bool isRemoved = myController->getTrackList()->removeObjById( pIndex);
	myController->createIndex();
	mySharedMutex.unlock();
	return isRemoved;
}
开发者ID:johnjohndoe,项目名称:Programming,代码行数:8,代码来源:TrackManager.cpp

示例3: unregisterListener

	void StatisticsMultiplexerSync::unregisterListener( StatisticsMultiplexerListener * listener ) throw() {
		listenersLock.lock();
		for( size_t i = listeners.size(); i--; ) {
			if( listeners[i].listener == listener ) {
				listeners.erase(listeners.begin() + i);
			}
		}
		listenersLock.unlock();
	}
开发者ID:JulianKunkel,项目名称:siox,代码行数:9,代码来源:StatisticsMultiplexerSync.cpp

示例4: main

int main()
{
  m.lock();
  boost::thread t(f);
  boost::this_thread::sleep_for(ms(250));
  m.unlock();
  t.join();

  return boost::report_errors();
}
开发者ID:manctl,项目名称:boost,代码行数:10,代码来源:lock_pass.cpp

示例5: registerListener

	void StatisticsMultiplexerSync::registerListener( StatisticsMultiplexerListener * listener ) throw() {
		listenersLock.lock();
		for( size_t i = listeners.size(); i--; ) if( listeners[i].listener == listener ) goto doUnlock;
		listeners.emplace_back( listener );
		if( lastStatistics != nullptr ){
			listener->notifyAvailableStatisticsChange( *lastStatistics, true, false );
		}
	doUnlock:
		listenersLock.unlock();
	}
开发者ID:JulianKunkel,项目名称:siox,代码行数:10,代码来源:StatisticsMultiplexerSync.cpp

示例6: f

void f()
{
#if defined BOOST_THREAD_USES_CHRONO
  time_point t0 = Clock::now();
  m.lock();
  time_point t1 = Clock::now();
  m.unlock();
  ns d = t1 - t0 - ms(250);
  // This test is spurious as it depends on the time the thread system switches the threads
  BOOST_TEST(d < ns(2500000)+ms(1000)); // within 2.5ms
#else
  //time_point t0 = Clock::now();
  m.lock();
  //time_point t1 = Clock::now();
  m.unlock();
  //ns d = t1 - t0 - ms(250);
  // This test is spurious as it depends on the time the thread system switches the threads
  //BOOST_TEST(d < ns(2500000)+ms(1000)); // within 2.5ms
#endif
}
开发者ID:0xDEC0DE8,项目名称:mcsema,代码行数:20,代码来源:lock_pass.cpp

示例7: get

 void get ()
 {
    try
    {
       _m.lock() ;
    }
    catch(...)
    {
       SDB_ASSERT ( FALSE, "SLatch get failed" ) ;
    }
 }
开发者ID:2015520,项目名称:SequoiaDB,代码行数:11,代码来源:ossLatch.hpp

示例8: main

int main()
{
  m.lock();
  boost::thread t(f);
#if defined BOOST_THREAD_USES_CHRONO
  boost::this_thread::sleep_for(ms(250));
#else
#endif
  m.unlock();
  t.join();

  return boost::report_errors();
}
开发者ID:0xDEC0DE8,项目名称:mcsema,代码行数:13,代码来源:try_lock_pass.cpp

示例9: addTrack

int TrackManager::addTrack( const string pFileName, CTrackInfo & pTrackData)
{
	mySharedMutex.lock();
	MP3Data * currentMP3Data = myController->addMP3( pFileName.c_str());
	int id = currentMP3Data->getId();
	if( id != INVALID_INDEX)
	{
		pTrackData.mIndex = currentMP3Data->getId();
		pTrackData.mAlbum = currentMP3Data->getAlbum();
		pTrackData.mInterpret = currentMP3Data->getArtist();
		pTrackData.mTitle = currentMP3Data->getTitle();
	}
	myController->createIndex();
	mySharedMutex.unlock();	
	return id;
}
开发者ID:johnjohndoe,项目名称:Programming,代码行数:16,代码来源:TrackManager.cpp

示例10: trackSearchStart

int TrackManager::trackSearchStart( const string & pTitleBeginn, TSearchID & pID)
{
	if( pTitleBeginn == "")
	{
		myController->getTrackList()->begin();
		pID = ALL_TRACKS_SEARCH_ID;
		return myController->getTrackList()->getLength();
	}
	else
	{
		mySharedMutex.lock();
		searchResultCount++;
		searchResultList[searchResultCount] = myController->getSearchResult( pTitleBeginn.c_str());
		pID = searchResultCount;
		std::cout << "search started, searchID: " << pID << std::endl;
		unsigned int length = searchResultList[searchResultCount]->getLength();
		mySharedMutex.unlock();
		return length;
	}
}
开发者ID:johnjohndoe,项目名称:Programming,代码行数:20,代码来源:TrackManager.cpp

示例11: main

int main()
{
  m.lock();
  boost::thread t(f);
#if defined BOOST_THREAD_USES_CHRONO
  time_point t2 = Clock::now();
  boost::this_thread::sleep_for(ms(250));
  time_point t3 = Clock::now();
#else
#endif
  m.unlock();
  t.join();

#if defined BOOST_THREAD_USES_CHRONO
  ns sleep_time = t3 - t2;
  ns d_ns = t1 - t0 - sleep_time;
  ms d_ms = boost::chrono::duration_cast<boost::chrono::milliseconds>(d_ns);
  // BOOST_TEST_GE(d_ms.count(), 0);
  BOOST_THREAD_TEST_IT(d_ms, max_diff);
  BOOST_THREAD_TEST_IT(d_ns, ns(max_diff));
#endif

  return boost::report_errors();
}
开发者ID:LocutusOfBorg,项目名称:poedit,代码行数:24,代码来源:lock_pass.cpp


注:本文中的boost::shared_mutex::lock方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。