| Index: src/engine/main.cpp |
| =================================================================== |
| --- a/src/engine/main.cpp |
| +++ b/src/engine/main.cpp |
| @@ -8,6 +8,7 @@ |
| #include "../shared/Dictionary.h" |
| #include "../shared/Utils.h" |
| #include "../shared/Version.h" |
| +#include "../shared/CriticalSection.h" |
| #include "Debug.h" |
| #include "Updater.h" |
| @@ -38,6 +39,9 @@ |
| << subscription->IsListed(); |
| } |
| } |
| + |
| + CriticalSection firstRunLock; |
| + bool firstRunActionTaken = false; |
| Communication::OutputBuffer HandleRequest(Communication::InputBuffer& request) |
| { |
| @@ -167,11 +171,16 @@ |
| } |
| break; |
| } |
| - case Communication::PROC_GET_IS_FIRST_RUN: |
| + case Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED: |
| + { |
| + CriticalSection::Lock lock(firstRunLock); |
| + if (!firstRunActionTaken && filterEngine->IsFirstRun()) |
| { |
| - response << filterEngine->IsFirstRun(); |
| - break; |
| + response << !firstRunActionTaken; |
|
Wladimir Palant
2013/07/21 11:53:45
How about just response << true? No point obscurin
|
| + firstRunActionTaken = true; |
| } |
|
Wladimir Palant
2013/07/21 11:53:45
What about:
else
response << false;
Shouldn't
|
| + break; |
| + } |
| } |
| return response; |