Threads fixed
This commit is contained in:
parent
8411f08348
commit
04f0aef3df
2 changed files with 32 additions and 10 deletions
|
@ -198,10 +198,7 @@ def file_recv_chunk(file_transfer_handler):
|
|||
"""
|
||||
def wrapped(tox, friend_number, file_number, position, chunk, length, user_data):
|
||||
chunk = chunk[:length] if length else None
|
||||
if length:
|
||||
execute(file_transfer_handler.incoming_chunk, friend_number, file_number, position, chunk)
|
||||
else:
|
||||
invoke_in_main_thread(file_transfer_handler.incoming_chunk, friend_number, file_number, position, chunk)
|
||||
|
||||
return wrapped
|
||||
|
||||
|
@ -211,9 +208,6 @@ def file_chunk_request(file_transfer_handler):
|
|||
Outgoing chunk
|
||||
"""
|
||||
def wrapped(tox, friend_number, file_number, position, size, user_data):
|
||||
if size:
|
||||
execute(file_transfer_handler.outgoing_chunk, friend_number, file_number, position, size)
|
||||
else:
|
||||
invoke_in_main_thread(file_transfer_handler.outgoing_chunk, friend_number, file_number, position, size)
|
||||
|
||||
return wrapped
|
||||
|
|
|
@ -3,8 +3,13 @@ import threading
|
|||
import queue
|
||||
from utils import util
|
||||
import time
|
||||
from PyQt5 import QtCore
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
# Base threads
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
class BaseThread(threading.Thread):
|
||||
|
||||
def __init__(self):
|
||||
|
@ -16,6 +21,21 @@ class BaseThread(threading.Thread):
|
|||
self.join()
|
||||
|
||||
|
||||
class BaseQThread(QtCore.QThread):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._stop_thread = False
|
||||
|
||||
def stop_thread(self):
|
||||
self._stop_thread = True
|
||||
self.wait()
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
# Toxcore threads
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
class InitThread(BaseThread):
|
||||
|
||||
def __init__(self, tox, plugin_loader, settings):
|
||||
|
@ -53,7 +73,7 @@ class InitThread(BaseThread):
|
|||
time.sleep(5)
|
||||
|
||||
|
||||
class ToxIterateThread(BaseThread):
|
||||
class ToxIterateThread(BaseQThread):
|
||||
|
||||
def __init__(self, tox):
|
||||
super().__init__()
|
||||
|
@ -65,7 +85,7 @@ class ToxIterateThread(BaseThread):
|
|||
time.sleep(self._tox.iteration_interval() / 1000)
|
||||
|
||||
|
||||
class ToxAVIterateThread(BaseThread):
|
||||
class ToxAVIterateThread(BaseQThread):
|
||||
|
||||
def __init__(self, toxav):
|
||||
super().__init__()
|
||||
|
@ -77,6 +97,10 @@ class ToxAVIterateThread(BaseThread):
|
|||
time.sleep(self._toxav.iteration_interval() / 1000)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
# File transfers thread
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
class FileTransfersThread(BaseThread):
|
||||
|
||||
def __init__(self):
|
||||
|
@ -115,6 +139,10 @@ def execute(func, *args, **kwargs):
|
|||
_thread.execute(func, *args, **kwargs)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
# Invoking in main thread
|
||||
# -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
class InvokeEvent(QtCore.QEvent):
|
||||
EVENT_TYPE = QtCore.QEvent.Type(QtCore.QEvent.registerEventType())
|
||||
|
||||
|
|
Loading…
Reference in a new issue