Open kamiccolo opened 5 years ago
I have the same 'append_pending_request' assertion problem as described above. Still trying to work out where my problem is coming from XD I'll get back to you as soon as I have any further insights.
I must ask - when you say 'retreating' do you mean when the program attempts to exit? This is also where I get the problem. Do you use Code::Blocks?
Hi.
I traced my problem to a buggy initialiser - I recently moved my program initialisation to a class I call 'Engine' which I place in global scope (my modules can extern ref them). My goal was that the EventHandler (another class I made) could reference the X11 'Display *' and 'Window' members of the Video class (all inside the Engine) as a 'friend', instead of passing those two by value (or reference) to the EventHandler initialiser. I deem it unnecessary to copy variables I can reference globally (overhead is unarguably reduced).
My problem was - my old code had the EventHandler initialiser (called init()) take parameters 'Display *' and 'Window' passed in (by value copy) with the intention that the class destructor would call 'init' again, passing NULL in both parameters, in order for init() to do the appropriate clean-up.
My developing (and solved problem) therefore became - my init() function was being called sneakily from the destructor I forgot about, but no longer cleaned up on behalf of the destructor. Worse, it actually tried to register another atom that already existed (WM_DELETE_WINDOW).
I haven't looked at your code yet - try looking for any part of your code that uses functions XInternAtom() or XSetWMProtocols() and try looking for odd circumstances or behaviour surrounding when they're called (are you calling them when you're destructing, like I did? That's probably a no-no).
I hope this helps.
Blocks
I meant "retreating" from the game battle.
Once couple of times I get the following while fighting the same darn ghost in the graveyard and trying to retreat: