aboutsummaryrefslogtreecommitdiff
path: root/depends/patches/boost/fix-win-wake-from-sleep.patch
diff options
context:
space:
mode:
Diffstat (limited to 'depends/patches/boost/fix-win-wake-from-sleep.patch')
-rw-r--r--depends/patches/boost/fix-win-wake-from-sleep.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/depends/patches/boost/fix-win-wake-from-sleep.patch b/depends/patches/boost/fix-win-wake-from-sleep.patch
new file mode 100644
index 0000000000..8fb4d3028b
--- /dev/null
+++ b/depends/patches/boost/fix-win-wake-from-sleep.patch
@@ -0,0 +1,31 @@
+--- old/libs/thread/src/win32/thread.cpp
++++ new/libs/thread/src/win32/thread.cpp
+@@ -645,7 +645,7 @@
+ } Detailed;
+ } Reason;
+ } REASON_CONTEXT, *PREASON_CONTEXT;
+- static REASON_CONTEXT default_reason_context={0/*POWER_REQUEST_CONTEXT_VERSION*/, 0x00000001/*POWER_REQUEST_CONTEXT_SIMPLE_STRING*/, (LPWSTR)L"generic"};
++ //static REASON_CONTEXT default_reason_context={0/*POWER_REQUEST_CONTEXT_VERSION*/, 0x00000001/*POWER_REQUEST_CONTEXT_SIMPLE_STRING*/, (LPWSTR)L"generic"};
+ typedef BOOL (WINAPI *setwaitabletimerex_t)(HANDLE, const LARGE_INTEGER *, LONG, PTIMERAPCROUTINE, LPVOID, PREASON_CONTEXT, ULONG);
+ static inline BOOL WINAPI SetWaitableTimerEx_emulation(HANDLE hTimer, const LARGE_INTEGER *lpDueTime, LONG lPeriod, PTIMERAPCROUTINE pfnCompletionRoutine, LPVOID lpArgToCompletionRoutine, PREASON_CONTEXT WakeContext, ULONG TolerableDelay)
+ {
+@@ -715,7 +715,8 @@
+ if(time_left.milliseconds/20>tolerable) // 5%
+ tolerable=time_left.milliseconds/20;
+ LARGE_INTEGER due_time=get_due_time(target_time);
+- bool const set_time_succeeded=detail_::SetWaitableTimerEx()(timer_handle,&due_time,0,0,0,&detail_::default_reason_context,tolerable)!=0;
++ //bool const set_time_succeeded=detail_::SetWaitableTimerEx()(timer_handle,&due_time,0,0,0,&detail_::default_reason_context,tolerable)!=0;
++ bool const set_time_succeeded=detail_::SetWaitableTimerEx()(timer_handle,&due_time,0,0,0,NULL,tolerable)!=0;
+ if(set_time_succeeded)
+ {
+ timeout_index=handle_count;
+@@ -799,7 +800,8 @@
+ if(time_left.milliseconds/20>tolerable) // 5%
+ tolerable=time_left.milliseconds/20;
+ LARGE_INTEGER due_time=get_due_time(target_time);
+- bool const set_time_succeeded=detail_::SetWaitableTimerEx()(timer_handle,&due_time,0,0,0,&detail_::default_reason_context,tolerable)!=0;
++ //bool const set_time_succeeded=detail_::SetWaitableTimerEx()(timer_handle,&due_time,0,0,0,&detail_::default_reason_context,tolerable)!=0;
++ bool const set_time_succeeded=detail_::SetWaitableTimerEx()(timer_handle,&due_time,0,0,0,NULL,tolerable)!=0;
+ if(set_time_succeeded)
+ {
+ timeout_index=handle_count;