Home » U++ Library support » U++ Callbacks and Timers » Kill callbacks when parent is destructed
Kill callbacks when parent is destructed [message #43572] |
Tue, 02 September 2014 18:04 |
crydev
Messages: 151 Registered: October 2012 Location: Netherlands
|
Experienced Member |
|
|
Hello,
I have a question about callbacks. I'm using a TopWindow that creates asynchronous callbacks. When the TopWindow is closed, it may be possible that one of the callbacks are still being executed. I changed the declaration to PTEBACK2 instead of THISBACK2, which seemed to help for most cases. However, I still experience problems. Now I know that you cannot just terminate an execution path. I could build in the necessary synchronization. However, when I saw the PTEBACK alternative, I was thinking: Does U++ provide a method to prevent crashing when execution PTEBACK's when its parent TopWindow is closed a.k.a. destroyed? Is there a simpler solution I can build in to suppress the situation?
Thanks,
crydev
|
|
|
Re: Kill callbacks when parent is destructed [message #43573 is a reply to message #43572] |
Tue, 02 September 2014 18:44 |
|
mirek
Messages: 13975 Registered: November 2005
|
Ultimate Member |
|
|
crydev wrote on Tue, 02 September 2014 18:04Hello,
I have a question about callbacks. I'm using a TopWindow that creates asynchronous callbacks. When the TopWindow is closed, it may be possible that one of the callbacks are still being executed. I changed the declaration to PTEBACK2 instead of THISBACK2, which seemed to help for most cases. However, I still experience problems. Now I know that you cannot just terminate an execution path. I could build in the necessary synchronization. However, when I saw the PTEBACK alternative, I was thinking: Does U++ provide a method to prevent crashing when execution PTEBACK's when its parent TopWindow is closed a.k.a. destroyed? Is there a simpler solution I can build in to suppress the situation?
Thanks,
crydev
Not sure I understand all detail properly, but when it is possible that parent TopWindow is destroyed _while_ _executing_ Callback, then you have violated multithreading rules (whole GUI is shared resource, only one thread is allowed to run GUI and some operations like opening/closing windows are allowed only for the main thread).
|
|
|
Re: Kill callbacks when parent is destructed [message #43574 is a reply to message #43573] |
Thu, 04 September 2014 09:25 |
crydev
Messages: 151 Registered: October 2012 Location: Netherlands
|
Experienced Member |
|
|
mirek wrote on Tue, 02 September 2014 18:44crydev wrote on Tue, 02 September 2014 18:04Hello,
I have a question about callbacks. I'm using a TopWindow that creates asynchronous callbacks. When the TopWindow is closed, it may be possible that one of the callbacks are still being executed. I changed the declaration to PTEBACK2 instead of THISBACK2, which seemed to help for most cases. However, I still experience problems. Now I know that you cannot just terminate an execution path. I could build in the necessary synchronization. However, when I saw the PTEBACK alternative, I was thinking: Does U++ provide a method to prevent crashing when execution PTEBACK's when its parent TopWindow is closed a.k.a. destroyed? Is there a simpler solution I can build in to suppress the situation?
Thanks,
crydev
Not sure I understand all detail properly, but when it is possible that parent TopWindow is destroyed _while_ _executing_ Callback, then you have violated multithreading rules (whole GUI is shared resource, only one thread is allowed to run GUI and some operations like opening/closing windows are allowed only for the main thread).
Thanks for your reply Mirek,
The callbacks I am executing run on seperate threads, using Thread().Run(...). This way, I can close the window without affecting the running threads. I am not operating on the user interface from other threads. I assume that scheduled PostCallback's are automatically removed when the TopWindow is closed, so one of my threads should be causing the problem.
Thanks
crydev
|
|
|
|
Re: Kill callbacks when parent is destructed [message #43581 is a reply to message #43575] |
Sat, 06 September 2014 19:32 |
crydev
Messages: 151 Registered: October 2012 Location: Netherlands
|
Experienced Member |
|
|
Thanks Mirek,
Interesting to know about PTEBACK's whereabouts, thanks. I'm going to try to implement basic synchronization to prevent the PostCallbacks from running. I think the problem is inside those.
Regards,
evo
|
|
|
Goto Forum:
Current Time: Fri Mar 29 07:41:42 CET 2024
Total time taken to generate the page: 0.01347 seconds
|