summaryrefslogtreecommitdiff
path: root/vcl/inc/win/salinst.h
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2016-04-11 23:49:12 +0200
committerMichael Stahl <mstahl@redhat.com>2016-04-18 11:23:56 +0000
commit8a0e6b25219e59b12034348b8b264117059755ec (patch)
tree2dc90d9cf21dfd2c81c86d077f59e38737cbe0c5 /vcl/inc/win/salinst.h
parent8bf82dd3979871cc1284570fcb2b3dcaa442a17e (diff)
tdf#96887 vcl: stop using periodic timers on WNT
Every time the periodic timer fires, it does a PostMessage() to the main thread. The main thread will only process the first message and discard the rest anyway, but with a short enough timer and other threads hogging the SolarMutex it's possible that the message queue overflows and other PostMessage calls fail with ERROR_NOT_ENOUGH_QUOTA. Try to avoid the problem by having the WinSalTimer always be a one-shot timer; when it fires and the main thread processes the posted message, it is restarted with the new due time. This requires creating a new TimerQueueTimer because ChangeTimerQueueTimer only works on periodic timers. Change-Id: I816bd3fa5fbfbea4f26be8ff680a1c916618d3f9 Reviewed-on: https://gerrit.libreoffice.org/24024 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan Holesovsky <kendy@collabora.com> Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'vcl/inc/win/salinst.h')
-rw-r--r--vcl/inc/win/salinst.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/vcl/inc/win/salinst.h b/vcl/inc/win/salinst.h
index fe2c3414593e..43c0313efa7d 100644
--- a/vcl/inc/win/salinst.h
+++ b/vcl/inc/win/salinst.h
@@ -83,6 +83,7 @@ SalFrame* ImplSalCreateFrame( WinSalInstance* pInst, HWND hWndParent, SalFrameSt
SalObject* ImplSalCreateObject( WinSalInstance* pInst, WinSalFrame* pParent );
HWND ImplSalReCreateHWND( HWND hWndParent, HWND oldhWnd, bool bAsChild );
void ImplSalStartTimer( sal_uIntPtr nMS, bool bMutex = false );
+void ImplSalStopTimer();
#endif // INCLUDED_VCL_INC_WIN_SALINST_H