mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 19:11:55 +00:00
[SHELL32] Follow-up of #2659
Add CreateAPCThread function and use it. CORE-13950
This commit is contained in:
parent
5c589b5537
commit
7980f40911
1 changed files with 16 additions and 11 deletions
|
@ -787,6 +787,17 @@ void CChangeNotifyServer::RemoveItemsByProcess(DWORD dwOwnerPID, DWORD dwUserPID
|
|||
}
|
||||
}
|
||||
|
||||
BOOL CreateAPCThread(void)
|
||||
{
|
||||
if (s_hThreadAPC != NULL)
|
||||
return TRUE;
|
||||
|
||||
unsigned tid;
|
||||
s_fTerminateAllWatches = FALSE;
|
||||
s_hThreadAPC = (HANDLE)_beginthreadex(NULL, 0, DirWatchThreadFuncAPC, NULL, 0, &tid);
|
||||
return s_hThreadAPC != NULL;
|
||||
}
|
||||
|
||||
// Message CN_REGISTER: Register the registration entry.
|
||||
// wParam: The handle of registration entry.
|
||||
// lParam: The owner PID of registration entry.
|
||||
|
@ -834,18 +845,12 @@ LRESULT CChangeNotifyServer::OnRegister(UINT uMsg, WPARAM wParam, LPARAM lParam,
|
|||
if (pDirWatch)
|
||||
{
|
||||
// create an APC thread for directory watching
|
||||
if (s_hThreadAPC == NULL)
|
||||
if (!CreateAPCThread())
|
||||
{
|
||||
unsigned tid;
|
||||
s_fTerminateAllWatches = FALSE;
|
||||
s_hThreadAPC = (HANDLE)_beginthreadex(NULL, 0, DirWatchThreadFuncAPC, NULL, 0, &tid);
|
||||
if (s_hThreadAPC == NULL)
|
||||
{
|
||||
pRegEntry->nRegID = INVALID_REG_ID;
|
||||
SHUnlockShared(pRegEntry);
|
||||
delete pDirWatch;
|
||||
return FALSE;
|
||||
}
|
||||
pRegEntry->nRegID = INVALID_REG_ID;
|
||||
SHUnlockShared(pRegEntry);
|
||||
delete pDirWatch;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// request adding the watch
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue