
Nick Name wrote:
4d) First wait and see if 4c is implementable; if not, fall back to 4b.
Well, I agree on everything and would directly vote for 4b, but instead I ask: what is the true problem here? If callbacks are serialized, what's the problem in allowing any thread to call CGA functions? There is a chance that some windowing system allows this. For example, mutual exclusion could be required for drawing on a surface, but not for registering a callback, so while a thread is drawing, another could be allowed to register callbacks.
Could someone explain what are the problems?
The problem is that a toolkit may not be at all re-entrant; i.e.
calling any toolkit function while another toolkit function is being
executed may have undesirable consequences.
--
Glynn Clements