~CHTTPDownloadDialog() {
		StopThread();
	}	
Exemple #2
0
CPokerTrackerThread::~CPokerTrackerThread()
{
	StopThread();
}
//------------------------------------------------------------------*
void
    CControlMgt::FinalRelease()
{
    ConnectControlMessages(FALSE);
    StopThread();
}
 void AudioOutputDeviceAlsa::Stop() {
     StopThread();
 }
Exemple #5
0
CLinuxInputDevicesCheckHotplugged::~CLinuxInputDevicesCheckHotplugged()
{
  m_bStop = true;
  m_quitEvent.Set();
  StopThread(true);
}
Exemple #6
0
CPictureInfoLoader::~CPictureInfoLoader()
{
  StopThread();
  delete m_mapFileItems;
}
bool CDummyVideoPlayer::CloseFile()
{
  StopThread();
  return true;
}
void CClientThread::CloseThread(HANDLE hFile)
{
	StopThread();
}
Exemple #9
0
void CVideoReferenceClock::Stop()
{
  CSingleExit lock(g_graphicsContext);
  StopThread();
}
Exemple #10
0
//..............................................................................................................................
MThread::~MThread()
{
	StopThread();
}
Exemple #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
}
Exemple #12
0
void CDVDMessageTracker::DeInit()
{
    StopThread();
}
ThreadedMemoryCardWorker::~ThreadedMemoryCardWorker()
{
	StopThread();

	delete m_pDriver;
}
VideoEncoder::~VideoEncoder() {
	StopThread();
}
Exemple #15
0
void CRemoteControl::Disconnect()
{
  StopThread();
  Close();
}
CAddonStatusHandler::~CAddonStatusHandler()
{
  StopThread();
}
Exemple #17
0
GroupManager::~GroupManager() {

	ccn_free();
    pGroupManager = NULL;
    StopThread();
}
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;
	
	}
Exemple #19
0
		virtual ~ThreadObject_Abstract() {
			StopThread();
		}
void CApplicationRenderer::Stop()
{
  StopThread();
}
Exemple #21
0
CAsyncFileCopy::~CAsyncFileCopy()
{
  StopThread();
}
Exemple #22
0
CThread::~CThread(void) 
{
	StopThread();
}
Exemple #23
0
CWinEventsAndroid::~CWinEventsAndroid()
{
  m_bStop = true;
  StopThread(true);
}
Exemple #24
0
void CViWavePlay::Stop()
{
	Close();
	StopThread();
}
Exemple #25
0
Thread::~Thread() {
    StopThread();
    pthread_attr_destroy(&__thread_attr);
}
Exemple #26
0
void Wiimote::Shutdown()
{
	StopThread();
	ClearReadQueue();
	m_write_reports.Clear();
}
Exemple #27
0
AudioEncoder::~AudioEncoder() {
	StopThread();
}
Exemple #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_);
}
Exemple #29
0
CThread::~CThread()
{
  StopThread();
}
void CLibraryTipCtrl::OnDestroy()
{
	StopThread();

	CCoolTipCtrl::OnDestroy();
}