23 HANDLE mNewWaitObject =
nullptr;
24 std::function<void()> mCallback;
27 AWin32EventWait()
noexcept =
default;
29 if (mNewWaitObject !=
nullptr) {
30 auto r = UnregisterWaitEx(mNewWaitObject, INVALID_HANDLE_VALUE);
35 void registerWaitForSingleObject(HANDLE baseHandle, std::function<
void()> callback, DWORD timeout = INFINITE, DWORD flags = WT_EXECUTEDEFAULT)
noexcept {
36 AUI_ASSERTX(mNewWaitObject ==
nullptr,
"waitForExitCode object already registered");
38 mCallback = std::move(callback);
40 auto r = RegisterWaitForSingleObject(&mNewWaitObject, baseHandle, [](PVOID context, BOOLEAN){
41 auto self =
reinterpret_cast<AWin32EventWait*
>(context);
43 },
this, timeout, flags);
#define AUI_ASSERTX(condition, what)
Asserts that the passed condition evaluates to true. Adds extra message string.
Definition Assert.h:74