more aggressive shutdown code

This commit is contained in:
faush01
2014-10-11 14:27:25 +11:00
parent db128ab6d6
commit 8b74bb3605
4 changed files with 37 additions and 14 deletions

View File

@@ -121,7 +121,10 @@ class ArtworkRotationThread(threading.Thread):
itemLastRun = datetime.today()
last_id = current_id
xbmc.sleep(1000)
if(xbmc.abortRequested == True):
break
xbmc.sleep(500)
try:
self.saveLastBackground()

View File

@@ -10,6 +10,7 @@ import xbmcaddon
import xml.etree.ElementTree as xml
import os
import threading
from datetime import datetime
class LoadMenuOptionsThread(threading.Thread):
@@ -54,21 +55,29 @@ class LoadMenuOptionsThread(threading.Thread):
except:
lastModLast = 0;
lastRun = datetime.today()
while (xbmc.abortRequested == False):
favourites_file = os.path.join(xbmc.translatePath('special://profile'), "favourites.xml")
try:
lastMod = os.stat(favourites_file).st_mtime
except:
lastMod = 0;
td = datetime.today() - lastRun
secTotal = td.seconds
if(lastFavPath != favourites_file or lastModLast != lastMod):
self.loadMenuOptions(favourites_file)
if(secTotal > 10):
favourites_file = os.path.join(xbmc.translatePath('special://profile'), "favourites.xml")
try:
lastMod = os.stat(favourites_file).st_mtime
except:
lastMod = 0;
lastFavPath = favourites_file
lastModLast = lastMod
if(lastFavPath != favourites_file or lastModLast != lastMod):
self.loadMenuOptions(favourites_file)
lastFavPath = favourites_file
lastModLast = lastMod
lastRun = datetime.today()
xbmc.sleep(3000)
xbmc.sleep(500)
self.logMsg("LoadMenuOptionsThread Exited")

View File

@@ -88,7 +88,8 @@ class WebSocketThread(threading.Thread):
if(self.client != None):
self.logMsg("Stopping Client")
self.keepRunning = False
self.client.keep_running = False
self.client.keep_running = False
self.client.close()
self.logMsg("Stopping Client : KeepRunning set to False")
'''
try:

View File

@@ -688,6 +688,13 @@ class WebSocket(object):
reason: the reason to close. This must be string.
"""
try:
self.sock.shutdown(socket.SHUT_RDWR)
except:
pass
'''
if self.connected:
if status < 0 or status >= ABNF.LENGTH_16:
raise ValueError("code is invalid range")
@@ -705,9 +712,11 @@ class WebSocket(object):
except:
pass
self.sock.settimeout(timeout)
print("SHUTDOWN ON SOCKET CALLED")
self.sock.shutdown(socket.SHUT_RDWR)
except:
pass
'''
self._closeInternal()
def _closeInternal(self):
@@ -817,7 +826,8 @@ class WebSocketApp(object):
close websocket connection.
"""
self.keep_running = False
self.sock.close()
if(self.sock != None):
self.sock.close()
def _send_ping(self, interval):
while True:
@@ -847,7 +857,7 @@ class WebSocketApp(object):
try:
self.sock = WebSocket(self.get_mask_key, sockopt=sockopt, sslopt=sslopt)
self.sock.settimeout(2)#default_timeout)
self.sock.settimeout(default_timeout)
self.sock.connect(self.url, header=self.header)
self._callback(self.on_open)