Rev1817, Fix windows crash on trayicon shutdown

This commit is contained in:
shortcutme 2017-01-14 21:41:59 +01:00
parent d3fc1cf897
commit 0a3a71f634
No known key found for this signature in database
GPG Key ID: 9557210F5E536D3D
2 changed files with 12 additions and 9 deletions

View File

@ -1,4 +1,3 @@
import time
import os
import sys
import atexit
@ -12,6 +11,7 @@ allow_reload = False # No source reload supported in this plugin
if "_" not in locals():
_ = Translate("plugins/Trayicon/languages/")
@PluginManager.registerTo("Actions")
class ActionsPlugin(object):
@ -54,23 +54,26 @@ class ActionsPlugin(object):
(_["ZeroNet Github"], lambda: self.opensite("https://github.com/HelloZeroNet/ZeroNet")),
(_["Report bug/request feature"], lambda: self.opensite("https://github.com/HelloZeroNet/ZeroNet/issues")),
"--",
(_["!Open ZeroNet"], lambda: self.opensite("http://%s:%s/%s" % (ui_ip, config.ui_port, config.homepage) )),
(_["!Open ZeroNet"], lambda: self.opensite("http://%s:%s/%s" % (ui_ip, config.ui_port, config.homepage))),
"--",
(_["Quit"], self.quit),
)
icon.clicked = lambda: self.opensite("http://%s:%s/%s" % (ui_ip, config.ui_port, config.homepage) )
icon.clicked = lambda: self.opensite("http://%s:%s/%s" % (ui_ip, config.ui_port, config.homepage))
self.quit_servers_event = gevent.threadpool.ThreadResult(
lambda res: gevent.spawn_later(0.1, self.quitServers)
) # Fix gevent thread switch error
gevent.threadpool.start_new_thread(icon._run, ()) # Start in real thread (not gevent compatible)
super(ActionsPlugin, self).main()
icon._die = True
def quit(self):
self.icon.die()
time.sleep(0.1)
sys.exit()
# self.main.ui_server.stop()
# self.main.file_server.stop()
self.quit_servers_event.set(True)
def quitServers(self):
self.main.ui_server.stop()
self.main.file_server.stop()
def opensite(self, url):
import webbrowser

View File

@ -9,7 +9,7 @@ class Config(object):
def __init__(self, argv):
self.version = "0.5.1"
self.rev = 1816
self.rev = 1817
self.argv = argv
self.action = None
self.config_file = "zeronet.conf"