Commit eab065c
fix: remove SocketServer::wait() calls that block forever on shutdown
stop() fires _conditionVariable.notify_one() before wait() is called,
so the notification is lost and wait() blocks the async teardown thread
indefinitely. Since std::future from std::async has a blocking destructor,
this hangs the plugin on unload, which on Windows cascades into BSOD.
stop() already joins all IXWebSocket threads and closes the socket —
wait() is unnecessary. Remove it from both stopWebSocketServer() and
the destructor.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent be82d94 commit eab065c
2 files changed
Lines changed: 6 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | 52 | | |
54 | 53 | | |
55 | 54 | | |
| |||
307 | 306 | | |
308 | 307 | | |
309 | 308 | | |
310 | | - | |
311 | | - | |
312 | | - | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
313 | 314 | | |
314 | 315 | | |
315 | 316 | | |
316 | 317 | | |
317 | | - | |
318 | 318 | | |
319 | 319 | | |
320 | 320 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
0 commit comments