more aggressive shutdown code
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user