diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2021-11-05 17:20:11 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2021-11-05 17:20:11 -0400 |
commit | c7af4921db7f62005f3f668ca7fca45d01d80781 (patch) | |
tree | dc14f71ef7cc16e0963d89708bfbed1fce589419 /indra/llcorehttp | |
parent | ff5496239bffadaca111b1e4380a01447f85843a (diff) |
SL-16094: Use ThreadPool for LLWindowWin32Thread.
Move the whole LLWindowWin32Thread class inside LLWindowWin32, and make it a
struct. Migrate the struct declaration to llwindowwin32.cpp.
Derive it from ThreadPool, which provides the WorkQueue. Use runPending()
instead of manually popping and running individual queue items.
Make its post() operation always PostMessage(bogus) whenever we put an entry
in the WorkQueue, so we won't remain blocked in GetMessage().
Instead of storing a back pointer to the LLWindowWin32 instance, store the
relevant HWND and HDC in LLWindowWin32Thread itself to avoid cross-thread
timing problems.
Extract both instances of a large duplicated block of LLWindowWin32 code to a
new recreateWindow() method, and call it in those places. Per the TODO, use a
std::future to pass the new HWND and HDC back to LLWindowWin32 -- but also
store them locally on the LLWindowWin32Thread instance.
Diffstat (limited to 'indra/llcorehttp')
0 files changed, 0 insertions, 0 deletions