Skip to content

Commit a9811c8

Browse files
committed
Include with ... open
Names task threads Makes poutil compat with 6.5 Further improves Shutdown
1 parent 0663d71 commit a9811c8

File tree

11 files changed

+37
-51
lines changed

11 files changed

+37
-51
lines changed

default.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def start():
134134

135135

136136
def main():
137-
msg = _(u'$$$ [kodi.callbacks] - Staring kodi.callbacks ver: %s (build %s)').encode('utf-8') % (str(_addonversion_), build)
137+
msg = _(u'$$$ [kodi.callbacks] - Staring kodi.callbacks ver: %s (build %s) python: %s').encode('utf-8') % (str(_addonversion_), build, sys.version)
138138
xbmc.log(msg=msg, level=xbmc.LOGNOTICE)
139139
if branch != 'master':
140140
xbmcaddon.Addon().setSetting('installed branch', branch)

resources/language/English/strings.po

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ msgid "Callbacks for Kodi"
2020
msgstr ""
2121

2222
msgctxt "Addon Description"
23-
msgid "Provides user definable actions for specific events within Kodi. Credit to Yesudeep Mangalapilly (gorakhargosh on github) and contributors for watchdog and pathtools modules. "
23+
msgid "Provides user definable actions for specific events within Kodi. Credit to Yesudeep Mangalapilly (gorakhargosh on github) and contributors for watchdog and pathtools modules."
2424
msgstr ""
2525

2626
msgctxt "Addon Disclaimer"

resources/lib/publishers/log.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,19 @@ def __init__(self, interval=100):
4040
self.interval = interval
4141

4242
def run(self):
43-
f = codecs.open(self.logfn, 'r', encoding='utf-8', errors='ignore')
44-
f.seek(0, 2) # Seek @ EOF
45-
fsize_old = f.tell()
46-
while not self.__abort_evt.is_set():
43+
with codecs.open(self.logfn, 'r', encoding='utf-8', errors='ignore') as f:
4744
f.seek(0, 2) # Seek @ EOF
48-
fsize = f.tell() # Get Size
49-
if fsize > fsize_old:
50-
f.seek(fsize_old, 0)
51-
lines = f.readlines() # Read to end
52-
for line in lines:
53-
self.ouputq.put(line, False)
54-
fsize_old = f.tell()
55-
xbmc.sleep(self.interval)
45+
fsize_old = f.tell()
46+
while not self.__abort_evt.is_set():
47+
f.seek(0, 2) # Seek @ EOF
48+
fsize = f.tell() # Get Size
49+
if fsize > fsize_old:
50+
f.seek(fsize_old, 0)
51+
lines = f.readlines() # Read to end
52+
for line in lines:
53+
self.ouputq.put(line, False)
54+
fsize_old = f.tell()
55+
xbmc.sleep(self.interval)
5656

5757
def abort(self, timeout=0):
5858
self.__abort_evt.set()

resources/lib/pubsub.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ def abort(self, timeout=0):
163163
if self.running:
164164
while not self._message_q.empty(): #Fixes bug where Shutdown event does not run bc abort called
165165
time.sleep(0.1)
166+
for subcriber in self.subscribers:
167+
for tm in subcriber.taskmanagers:
168+
for task in tm.run_tasks:
169+
task.join(0.1)
166170
self._abort_evt.set()
167171
if timeout > 0:
168172
self.join(timeout)

resources/lib/taskABC.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
# along with this program. If not, see <http://www.gnu.org/licenses/>.
1818
#
1919

20-
import sys
2120
import threading
2221
import Queue
2322
import abc
@@ -43,8 +42,8 @@ class AbstractTask(threading.Thread):
4342
tasktype = 'abstract'
4443
lock = threading.RLock()
4544

46-
def __init__(self, logger=KodiLogger.log):
47-
super(AbstractTask, self).__init__(name='Worker')
45+
def __init__(self, logger=KodiLogger.log, name='AbstractTask'):
46+
super(AbstractTask, self).__init__(name=name)
4847
self.cmd_str = ''
4948
self.userargs = ''
5049
self.log = logger

resources/lib/tasks/taskBuiltin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class TaskBuiltin(AbstractTask):
4040
]
4141

4242
def __init__(self):
43-
super(TaskBuiltin, self).__init__()
43+
super(TaskBuiltin, self).__init__(name='Builtin')
4444

4545
@staticmethod
4646
def validate(taskKwargs, xlog=KodiLogger.log):

resources/lib/tasks/taskHttp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class TaskHttp(AbstractTask):
7979
]
8080

8181
def __init__(self):
82-
super(TaskHttp, self).__init__()
82+
super(TaskHttp, self).__init__(name='TaskHttp')
8383
self.runtimeargs = u''
8484

8585
@staticmethod

resources/lib/tasks/taskJson.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class TaskJsonNotify(AbstractTask):
4141
]
4242

4343
def __init__(self):
44-
super(TaskJsonNotify, self).__init__()
44+
super(TaskJsonNotify, self).__init__(name='TaskJson')
4545

4646
@staticmethod
4747
def validate(taskKwargs, xlog=KodiLogger.log):

resources/lib/tasks/taskPython.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class TaskPython(AbstractTask):
5353
]
5454

5555
def __init__(self):
56-
super(TaskPython, self).__init__()
56+
super(TaskPython, self).__init__(name='TaskPython')
5757

5858
@staticmethod
5959
def validate(taskKwargs, xlog=KodiLogger.log):

resources/lib/tasks/taskScript.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class TaskScript(AbstractTask):
6565

6666

6767
def __init__(self):
68-
super(TaskScript, self).__init__()
68+
super(TaskScript, self).__init__(name='TaskScript')
6969

7070
@staticmethod
7171
def validate(taskKwargs, xlog=KodiLogger.log):
@@ -176,7 +176,10 @@ def run(self):
176176
msg = unicode(e)
177177
except subprocess.CalledProcessError, e:
178178
err = True
179-
msg = unicode(e.output)
179+
if hasattr(e, 'output'):
180+
msg = unicode(e.output)
181+
else:
182+
msg = unicode(e)
180183
except Exception:
181184
e = sys.exc_info()[0]
182185
err = True

0 commit comments

Comments
 (0)