Skip to content
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

qt: Move AppInit2 and Shutdown to a thread #3493

Merged
merged 4 commits into from Jan 11, 2014

Conversation

laanwj
Copy link
Member

@laanwj laanwj commented Jan 7, 2014

Run initialization and shutdown in their own thread instead of the UI thread.

  • Allows a more responsive splash screen (goes away immediately when clicked!)
  • Prevents Process does not respond messages from the window system while initializing (common complaint)
  • Show a Bitcoin Core is shutting down... window while shutting down
  • Hopefully fixes Ubuntu issue Bitcoin-Qt 0.6.2 for Ubuntu 12.04 invisible in systray, no global menu #1242 preventing the menu and icon from appearing
  • Cleans up the initialization code by moving initialization phases into methods on the Application object

@laanwj
Copy link
Member Author

laanwj commented Jan 9, 2014

Testing in #1242 confirms that the Ubuntu menu+icon issue is solved by these changes.

Move AppInit2 and Shutdown to a thread.

This allows a more responsive splash screen, prevents 'process does not respond'
messages from the window system and will allow for showing a user friendly
window while shutting down.
Makes it clear to the user that the application is still wrapping up
and the computer should not be turned off until it is finished.
Remove the need for global references `guiref` and
`splashref` by making the BitcoinGUI and SplashScreen
classes register for the UI interface signals themselves.
Stop the shutdown timer from exiting the main loop
when shutdown is already in progress.

Fixes seeming hanging window after typing 'stop' in debug console.

Also hide the debug console during shutdown as it is useless without
a core to connect to.
@BitcoinPullTester
Copy link

Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/9a2305a1b3075d110f4127a3d3c38b014237968a for binaries and test log.
This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/
Contact BlueMatt on freenode if something looks broken.

laanwj added a commit that referenced this pull request Jan 11, 2014
9a2305a qt: Stop shutdown detection timer during shutdown (Wladimir J. van der Laan)
35ecf85 qt: Remove global references in bitcoin.cpp (Wladimir J. van der Laan)
55fe4de qt: Show window while shutting down (Wladimir J. van der Laan)
202d853 qt: Move initialization/shutdown to a thread (Wladimir J. van der Laan)
@laanwj laanwj merged commit 9a2305a into bitcoin:master Jan 11, 2014
@laanwj laanwj deleted the 2014_01_qt_threaded_init branch April 9, 2014 14:21
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants