The problem you are describing is familiar to me from experience with D/Go and interfacing X11 and OpenGL subsystems (or even sound systems, sometimes): regular C libraries/software expect the application to keep calling from the same thread it originally initiated the interaction from.
The way this is addressed in Go (which has no native threads concept) for example is by doing the (non-blocking) multiplexing of async signals in the main thread, while having all the "action" happen elsewhere. For reference, see https://github.com/golang/go/wiki/LockOSThread.
How such centralized event-based approach would play with existing Geany functionality, that I can't tell and I do believe its limitations have probably already become evident from the attempts you mentioned.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.