Windows: try to stop indexing when receiving a powerbroadcast message
This commit is contained in:
parent
9709836300
commit
ef9125ba67
@ -165,20 +165,34 @@ LRESULT CALLBACK MainWndProc(HWND hwnd , UINT msg , WPARAM wParam,
|
|||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
switch (msg) {
|
switch (msg) {
|
||||||
|
case WM_POWERBROADCAST:
|
||||||
|
{
|
||||||
|
LOGDEB("MainWndProc: got powerbroadcast message\n");
|
||||||
|
// We always try to end an indexing operation, independantly
|
||||||
|
// of the kind of event. Mounted volumes may have changed
|
||||||
|
// etc. Using SIGTERM just to have something different from
|
||||||
|
// the other messages
|
||||||
|
if (l_sigcleanup) {
|
||||||
|
l_sigcleanup(SIGTERM);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case WM_QUERYENDSESSION:
|
case WM_QUERYENDSESSION:
|
||||||
case WM_ENDSESSION:
|
case WM_ENDSESSION:
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
{
|
{
|
||||||
l_sigcleanup(SIGINT);
|
if (l_sigcleanup) {
|
||||||
|
l_sigcleanup(SIGINT);
|
||||||
|
}
|
||||||
LOGDEB("MainWndProc: got end message, waiting for work finished\n" );
|
LOGDEB("MainWndProc: got end message, waiting for work finished\n" );
|
||||||
DWORD res = WaitForSingleObject(eWorkFinished, INFINITE);
|
DWORD res = WaitForSingleObject(eWorkFinished, INFINITE);
|
||||||
if (res != WAIT_OBJECT_0) {
|
if (res != WAIT_OBJECT_0) {
|
||||||
LOGERR("MainWndProc: exit ack wait failed\n" );
|
LOGERR("MainWndProc: exit ack wait failed\n" );
|
||||||
}
|
}
|
||||||
LOGDEB("MainWindowProc: got exit ready event, exiting\n" );
|
LOGDEB("MainWindowProc: got exit ready event, exiting\n" );
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return DefWindowProc(hwnd, msg, wParam, lParam);
|
return DefWindowProc(hwnd, msg, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user