Exemplo n.º 1
0
	~CHTTPDownloadDialog() {
		StopThread();
	}	
Exemplo n.º 2
0
CPokerTrackerThread::~CPokerTrackerThread()
{
	StopThread();
}
//------------------------------------------------------------------*
void
    CControlMgt::FinalRelease()
{
    ConnectControlMessages(FALSE);
    StopThread();
}
 void AudioOutputDeviceAlsa::Stop() {
     StopThread();
 }
Exemplo n.º 5
0
CLinuxInputDevicesCheckHotplugged::~CLinuxInputDevicesCheckHotplugged()
{
  m_bStop = true;
  m_quitEvent.Set();
  StopThread(true);
}
Exemplo n.º 6
0
CPictureInfoLoader::~CPictureInfoLoader()
{
  StopThread();
  delete m_mapFileItems;
}
Exemplo n.º 7
0
bool CDummyVideoPlayer::CloseFile()
{
  StopThread();
  return true;
}
Exemplo n.º 8
0
void CClientThread::CloseThread(HANDLE hFile)
{
	StopThread();
}
Exemplo n.º 9
0
void CVideoReferenceClock::Stop()
{
  CSingleExit lock(g_graphicsContext);
  StopThread();
}
Exemplo n.º 10
0
//..............................................................................................................................
MThread::~MThread()
{
	StopThread();
}
Exemplo n.º 11
0
//..............................................................................................................................
int  MThread::StartThread(MString strName, tagMThreadFunction fpFunction,void * lpParam,bool bCheckAlive)
{
	s_bStopAllThread = false;
	
	StopThread();

	m_bStopCurThread = false;
	//add by liuqy 20100817 for 启动线程时,需要复位系统参数
	rv_Reset();

	#ifndef LINUXCODE

		register int				errorcode;
		
		m_hRecordData = (HANDLE)_beginthreadex(	0,
												0,
												(unsigned int (__stdcall *)(void *))fpFunction,
												lpParam,
												0,
												(unsigned int *)&errorcode	);
		if ( m_hRecordData == NULL )
		{
			return(MErrorCode::GetSysErr());
		}
		//modify by liuqy 20100817 for 保存线程ID号
		//SetSpObejctName((strName+"_pid:"+MString(errorcode)).c_str());
		m_ulThreadID = errorcode;
		SetSpObejctName(strName.c_str());
		//end mdofiy by liuqy
		if ( bCheckAlive == true )
		{
			inner_setactive();
		}
		
		return(1);

	#else

		/*
		 *	LINUX pthread_create创建的线程的堆栈是10MB
		 *	我们的程序通常用不到那么大,所以调整为2MB
		 *	这样可以减少逻辑地址
		 */
		pthread_attr_t thread_attr;
		size_t stack_size;

		if(pthread_attr_init(&thread_attr) != 0)
		{
			return(MErrorCode::GetSysErr());
		}

		//设置线程栈空间为2M.
		stack_size = 2048*1024;
		if(pthread_attr_setstacksize(&thread_attr, stack_size) != 0)
		{
			return(MErrorCode::GetSysErr());
		}

		if ( pthread_create(&m_hRecordData,&thread_attr,fpFunction,lpParam) != 0 )
		{
			return(MErrorCode::GetSysErr());
		}
		//add by liuqy 20100817 for 保存线程ID号
		m_ulThreadID = m_hRecordData;
		
		SetSpObejctName(strName.c_str());

		if ( bCheckAlive == true )
		{
			inner_setactive();
		}
		
		return(1);

	#endif
}
Exemplo n.º 12
0
void CDVDMessageTracker::DeInit()
{
    StopThread();
}
Exemplo n.º 13
0
ThreadedMemoryCardWorker::~ThreadedMemoryCardWorker()
{
	StopThread();

	delete m_pDriver;
}
Exemplo n.º 14
0
VideoEncoder::~VideoEncoder() {
	StopThread();
}
Exemplo n.º 15
0
void CRemoteControl::Disconnect()
{
  StopThread();
  Close();
}
Exemplo n.º 16
0
CAddonStatusHandler::~CAddonStatusHandler()
{
  StopThread();
}
Exemplo n.º 17
0
GroupManager::~GroupManager() {

	ccn_free();
    pGroupManager = NULL;
    StopThread();
}
Exemplo n.º 18
0
TInt CTestSemtrywait::TestSem392( )
	{
	
	int errsum=0, err = 0;
	int retval = 0;
	ThreadData lThreadData;

	sem_t lSignalSemaphore;
	sem_t lSuspendSemaphore;

	sem_t           lTestSemaphore;
	pthread_mutex_t lTestMutex;
	pthread_cond_t  lTestCondVar;
	pthread_condattr_t  lCondAttr;
	pthread_mutexattr_t lTestMutexAttr;

	pthread_mutexattr_t defaultattr;
	pthread_mutexattr_t errorcheckattr;
	pthread_mutexattr_t recursiveattr;

	pthread_mutexattr_init(&defaultattr);
	pthread_mutexattr_init(&errorcheckattr);
	pthread_mutexattr_init(&recursiveattr);

	pthread_mutexattr_settype(&errorcheckattr,PTHREAD_MUTEX_ERRORCHECK);
	pthread_mutexattr_settype(&recursiveattr,PTHREAD_MUTEX_RECURSIVE);


	pthread_mutex_t l_staticmutex = PTHREAD_MUTEX_INITIALIZER;
	pthread_mutex_t l_errorcheckmutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
	pthread_mutex_t l_recursivemutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
    pthread_cond_t  l_staticcondvar = PTHREAD_COND_INITIALIZER;


    CommonData lCommonData;
    lCommonData.iStaticMutex = &l_staticmutex;
	lCommonData.iErrorCheckMutex = &l_errorcheckmutex;
	lCommonData.iRecursiveMutex = &l_recursivemutex;
	lCommonData.iStaticCondVar = &l_staticcondvar;

	retval = sem_init(&lSignalSemaphore,0,0);
	if(retval != 0)
		{
		return retval;
		}

	retval = sem_init(&lSuspendSemaphore,0,0);
	if(retval != 0)
		{
		return retval;
		}

	lThreadData.iSignalSemaphore = &lSignalSemaphore;
	lThreadData.iSuspendSemaphore = &lSuspendSemaphore;
	lThreadData.iTestSemaphore   = &lTestSemaphore;
	lThreadData.iTestMutex       = &lTestMutex;
	lThreadData.iTestMutexAttr   = &lTestMutexAttr;
	lThreadData.iTestCondVar     = &lTestCondVar;
	lThreadData.iDefaultAttr     = &defaultattr;
	lThreadData.iErrorcheckAttr = &errorcheckattr;
	lThreadData.iRecursiveAttr   = &recursiveattr;

	lThreadData.iCondAttr        = &lCondAttr;
	for (int loop = 0; loop < EThreadMain; loop++)
		{
	    g_spinFlag[loop] = true;
		}
	lThreadData.iSuspending      = false;
	lThreadData.iSpinCounter     = 0;
	lThreadData.iCurrentCommand  = -1;
	lThreadData.iSelf            = EThreadMain;
	lThreadData.iValue           = 0;
	lThreadData.iRetValue        = 0;
	lThreadData.ierrno           = 0;
	lThreadData.iExpectederrno   = 0;
	lThreadData.iTimes           = 0;
	lThreadData.iStopped         = false;
	lThreadData.iCommonData      = &lCommonData;

	retval = SemInit(&lThreadData);
	
	fp=func2;
	retval = ThreadCreate(&lThreadData, (void*) EThread1);
	
	fp=func4;
	retval = ThreadCreate(&lThreadData, (void*) EThread2);

	retval = SemPost(&lThreadData);
	retval = ThreadDestroy(&lThreadData, (void*) EThread1);
	retval = ThreadDestroy(&lThreadData, (void*) EThread2);
	retval = SemDestroy(&lThreadData);
	StopThread(&lThreadData);
	
	err = pthread_cond_destroy(&l_staticcondvar);
	if(err != EINVAL)
		{
		errsum += err;
		}
    err = pthread_mutex_destroy(&l_recursivemutex);
	if(err != EINVAL)
		{
		errsum += err;
		}
    err = pthread_mutex_destroy(&l_errorcheckmutex);
	if(err != EINVAL)
		{
		errsum += err;
		}
    err = pthread_mutex_destroy(&l_staticmutex);
	if(err != EINVAL)
		{
		errsum += err;
		}
    err = pthread_mutexattr_destroy(&recursiveattr);
	if(err != EINVAL)
		{
		errsum += err;
		}
	err = pthread_mutexattr_destroy(&errorcheckattr);
	if(err != EINVAL)
		{
		errsum += err;
		}
	err = pthread_mutexattr_destroy(&defaultattr);
	if(err != EINVAL)
		{
		errsum += err;
		}
    err = sem_destroy(&lSignalSemaphore);
	if(err != EINVAL)
		{	
		errsum += err;
		}
	err = sem_destroy(&lSuspendSemaphore);
	if(err != EINVAL)
		{
		errsum += err;
		}

	return retval+errsum;
	
	}
Exemplo n.º 19
0
		virtual ~ThreadObject_Abstract() {
			StopThread();
		}
void CApplicationRenderer::Stop()
{
  StopThread();
}
Exemplo n.º 21
0
CAsyncFileCopy::~CAsyncFileCopy()
{
  StopThread();
}
Exemplo n.º 22
0
CThread::~CThread(void) 
{
	StopThread();
}
Exemplo n.º 23
0
CWinEventsAndroid::~CWinEventsAndroid()
{
  m_bStop = true;
  StopThread(true);
}
Exemplo n.º 24
0
void CViWavePlay::Stop()
{
	Close();
	StopThread();
}
Exemplo n.º 25
0
Thread::~Thread() {
    StopThread();
    pthread_attr_destroy(&__thread_attr);
}
Exemplo n.º 26
0
void Wiimote::Shutdown()
{
	StopThread();
	ClearReadQueue();
	m_write_reports.Clear();
}
Exemplo n.º 27
0
AudioEncoder::~AudioEncoder() {
	StopThread();
}
Exemplo n.º 28
0
LinuxaioQueue::~LinuxaioQueue() {
    StopThread(post_thread_, post_thread_state_, num_waiting_requests_);
    StopThread(wait_thread_, wait_thread_state_, num_posted_requests_);
    syscall(SYS_io_destroy, context_);
}
Exemplo n.º 29
0
CThread::~CThread()
{
  StopThread();
}
Exemplo n.º 30
0
void CLibraryTipCtrl::OnDestroy()
{
	StopThread();

	CCoolTipCtrl::OnDestroy();
}