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


C++ thread::Mutex类代码示例

本文整理汇总了C++中thread::Mutex的典型用法代码示例。如果您正苦于以下问题:C++ Mutex类的具体用法?C++ Mutex怎么用?C++ Mutex使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: wait_for_thread_init

// master线程等待所有线程初始化完成
void wait_for_thread_init() {
    s_init_lock.Hold();
    while (s_init_count < s_net_setting.net_thread_num_) {
        pthread_cond_wait(&s_init_cond, &s_init_lock.GetMutex());
    }
    s_init_lock.Release();
}
开发者ID:lj-211,项目名称:go_fight,代码行数:8,代码来源:go_net.cpp

示例2: needSpecial

void WildcardManager::needSpecial(WCSpecialInfo *info)
{
	m_WCMutex.lock();
	onNeedSpecialEvent(*info);
	m_WCMutex.unlock();
}
开发者ID:Alasaad,项目名称:Desurium,代码行数:6,代码来源:WildcardManager.cpp

示例3: addExtender

bool ItemJSBinding::addExtender(ChromiumDLL::JavaScriptExtenderI* extender)
{
	if (!extender)
		return false;

	bool found = false;

	g_ItemLock.lock();

	for (size_t x=0; x<g_vExtenderList.size(); x++)
	{
		if (g_vExtenderList[x] == extender)
		{
			found = true;
			break;
		}
	}

	if (!found)
		g_vExtenderList.push_back(extender);

	g_ItemLock.unlock();

	return !found;
}
开发者ID:BlastarIndia,项目名称:Desurium,代码行数:25,代码来源:jsItem.cpp

示例4: AddItem

uint32 ItemJSBinding::AddItem(ScriptCoreItemI* item)
{
	uint32 hash = UTIL::MISC::RSHash_CSTR(gcString("{0}", (uint64)item));

	g_ItemLock.lock();
	g_ItemMap[hash] = item;
	g_ItemLock.unlock();

	return hash;
}
开发者ID:BlastarIndia,项目名称:Desurium,代码行数:10,代码来源:jsItem.cpp

示例5: RemoveItem

void ItemJSBinding::RemoveItem(uint32 itemId)
{
	g_ItemLock.lock();

	auto it = g_ItemMap.find(itemId);

	if (it != g_ItemMap.end())
		g_ItemMap.erase(it);

	g_ItemLock.unlock();
}
开发者ID:BlastarIndia,项目名称:Desurium,代码行数:11,代码来源:jsItem.cpp

示例6: GetItem

ScriptCoreItemI* ItemJSBinding::GetItem(uint32 itemId)
{
	ScriptCoreItemI* ret = NULL;

	g_ItemLock.lock();

	auto it = g_ItemMap.find(itemId);

	if (it != g_ItemMap.end())
		ret= it->second;

	g_ItemLock.unlock();

	return ret;
}
开发者ID:BlastarIndia,项目名称:Desurium,代码行数:15,代码来源:jsItem.cpp

示例7: reinit

 // Called after a fork(), when we know we're alone again, to get
 // everything back in the proper order.
 void reinit() {
   mutex_.init();
   waiting_to_stop_.init();
   waiting_to_run_.init();
   pending_threads_ = 1;
   should_stop_ = false;
 }
开发者ID:vasco,项目名称:rubinius,代码行数:9,代码来源:shared_state.cpp

示例8: getRegistrationCode

const char* ItemJSBinding::getRegistrationCode()
{
	DesuraJSBase<ItemJSBinding>::getRegistrationCode();

	g_ItemLock.lock();

	for (size_t x=0; x<g_vExtenderList.size(); x++)
	{
		const char* code = g_vExtenderList[x]->getRegistrationCode();
		m_szRegCode.append(code);
	}

	g_ItemLock.unlock();

	return m_szRegCode.c_str();
}
开发者ID:BlastarIndia,项目名称:Desurium,代码行数:16,代码来源:jsItem.cpp

示例9: execute

JSObjHandle ItemJSBinding::execute(ChromiumDLL::JavaScriptFunctionArgs* args)
{
	JSObjHandle ret =  DesuraJSBase<ItemJSBinding>::execute(args);
	
	if (!ret->isException() || g_vExtenderList.empty())
		return ret;

	g_ItemLock.lock();

	for (size_t x=0; x<g_vExtenderList.size(); x++)
	{
		ret = g_vExtenderList[x]->execute(args);

		if (!ret->isException())
			break;
	}

	g_ItemLock.unlock();
	return ret;
}
开发者ID:BlastarIndia,项目名称:Desurium,代码行数:20,代码来源:jsItem.cpp

示例10: log

	void log(const std::string& message)
	{
		mutex.lock();
		os << "logger: " << message << "\n";
		mutex.unlock();
	}
开发者ID:gitprofit,项目名称:httpsrvr,代码行数:6,代码来源:Logger.hpp

示例11: register_thread_init

// worker线程初始化完成后通知master线程
void register_thread_init() {
    s_init_lock.Hold();
    ++s_init_count;
    pthread_cond_signal(&s_init_cond);
    s_init_lock.Release();
}
开发者ID:lj-211,项目名称:go_fight,代码行数:7,代码来源:go_net.cpp


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