Menu

#98 Improve support for multi-threaded apps

new
None
debugger
enhancement
0.0.20120331
enhancement
2012-05-29
2012-05-29
Bruce Merry
No

Currently whichever thread first does GL stuff becomes the debugger thread, and other threads are ignored for debugging. Instead, a lock should be used to protect access to the critical stuff (stop state, stop flags, request queue, output pipe), and when stopped a condition variable should be used to hold other threads until the go is received (or the lock can serve that purpose). There are a few wrinkles:
- The platform layer has no condition variable support (might be non-trivial on Windows)
- It might need a way to atomically drop a lock and wait for the next request in the request queue.

Discussion