|
@@ -44,17 +44,10 @@ void* queryMedia(void* param)
|
|
|
CLocalMediaPlayEntity* curEntity = (CLocalMediaPlayEntity*)param;
|
|
|
sleep(3);
|
|
|
|
|
|
- while (true)
|
|
|
+ while (false == curEntity->GetScanExitFlag())
|
|
|
{
|
|
|
curEntity->m_mediaManage.InitResourceListByLocal();
|
|
|
- {
|
|
|
- struct timespec ts;
|
|
|
- clock_gettime(CLOCK_REALTIME, &ts);
|
|
|
- ts.tv_sec += 3600;
|
|
|
- if (0 == sem_timedwait(&curEntity->m_scanexit_sem, &ts)) {
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ sleep(3600);
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
@@ -98,11 +91,10 @@ CLocalMediaPlayEntity::~CLocalMediaPlayEntity()
|
|
|
m_scanThread = NULL;
|
|
|
}
|
|
|
#else
|
|
|
- sem_post(&m_scanexit_sem);
|
|
|
- if (0 == pthread_join(m_scanThreadId, NULL)){
|
|
|
+ m_scanexitflag = true;
|
|
|
+ if (0 == pthread_join(m_scanThreadId, NULL)) {
|
|
|
Dbg("pthread join scanThreadId success.");
|
|
|
}
|
|
|
- sem_destroy(&m_scanexit_sem);
|
|
|
#endif // RVC_OS_WIN
|
|
|
}
|
|
|
|
|
@@ -479,6 +471,12 @@ bool CLocalMediaPlayEntity::GetPlayFlag()
|
|
|
return m_badplayflag;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+bool CLocalMediaPlayEntity::GetScanExitFlag()
|
|
|
+{
|
|
|
+ return m_scanexitflag;
|
|
|
+}
|
|
|
+
|
|
|
int CLocalMediaPlayEntity::GetPlayerIcoPath(char* strPath, size_t uLen)
|
|
|
{
|
|
|
int iRet = -1;
|
|
@@ -575,9 +573,6 @@ ErrorCodeEnum CLocalMediaPlayEntity::__OnStart(ErrorCodeEnum preOperationError)
|
|
|
else{
|
|
|
Dbg("create queryMedia thread failed.");
|
|
|
}
|
|
|
- if (0 != sem_init(&m_scanexit_sem, 0, 0)) {
|
|
|
- Dbg("create m_scanexit_sem sem failed.");
|
|
|
- }
|
|
|
|
|
|
#endif // RVC_OS_WIN
|
|
|
|