コード例 #1
0
ファイル: main.c プロジェクト: Lgggg/wangdaozuoye
void* handle1(void* arg){
	mtx.lock();
	std::cout<<"thread1 before add:"<<cnt<<std::endl;
	cnt++;
	std::cout<<"thread1 after add: "<<cnt<<std::endl;
	mtx.unlock();
	sleep(2);
}
コード例 #2
0
ファイル: main.c プロジェクト: Lgggg/wangdaozuoye
void* handle2(void* arg){
	while(1){
	mtx.lock();
	std::cout<<"thread2 before add:"<<cnt<<std::endl;
	cnt++;
	std::cout<<"thread2 after add: "<<cnt<<std::endl;
	mtx.unlock();
	sleep(2);
	}
}
コード例 #3
0
ファイル: CppiaCtx.cpp プロジェクト: Gama11/hxcpp
void scriptMarkStack(hx::MarkContext *__inCtx)
{
   MyMutex *m = sCppiaCtxLock;
   if (m)
       m->Lock();

   for(int i=0;i<sAllContexts.size();i++)
      sAllContexts[i]->mark(__inCtx);

   if (m)
       m->Unlock();
}
コード例 #4
0
ファイル: Thread.cpp プロジェクト: TheHippo/hxcpp
Dynamic __hxcpp_thread_create(Dynamic inStart)
{
    g_threadInfoMutex.Lock();
    int threadNumber = g_nextThreadNumber++;
    g_threadInfoMutex.Unlock();

	hxThreadInfo *info = new hxThreadInfo(inStart, threadNumber);

	hx::GCPrepareMultiThreaded();
	hx::EnterGCFreeZone();

   #if defined(HX_WINRT)

   try
   {
     auto workItemHandler = ref new WorkItemHandler([=](IAsyncAction^)
        {
            // Run the user callback.
            hxThreadFunc(info);
        }, Platform::CallbackContext::Any);

      ThreadPool::RunAsync(workItemHandler, WorkItemPriority::Normal, WorkItemOptions::None);
   }