-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lockup / program freeze in new event system #63
Comments
I have not seen any lockups. Can you duplicate this? Do you know which actions are causing the lockup? |
The only time I've been able to replicate this is by having a process that takes a fix.db change event, and changes other DB items in the event handler. Maybe for some reason it's OK with non-DB events. I couldn't duplicate a hang with repeated button clicks. In any case, keep this in mind if you start seeing unexplained hangs. |
I'm going to start writing some unit tests for these things. I'll try and torture test it and see if I can replicate the problem. |
Maybe we should create a watchdog feature that could detect and restart pyefis if it locks up. The watchdog could work something like this: A separate program would monitor that value checking once a second. If it does not see the value change 3 times in 5 seconds it would kill and restart pyefis. Maybe the fix gateway should also have such a feature too. |
I have another project that is similar to FiXGateway that I've been working on and it has a supervising process that can kill and restart children if they misbehave. It would not be terribly difficult to implement such a program. It could then launch both fixgw and pyefis as well as monitor them. |
Is anyone still seeing lockups? |
I have found that triggering Qt events from within Qt event handlers intermittently causes lockups. The lockup is rare, but of course guaranteed to happen when its most critical that it works. :)
All handlers in the new event system should either start a one-shot thread or message a long-lived thread to do things which trigger other events, which is pretty much all actions and/or functions currently.
The text was updated successfully, but these errors were encountered: