Name send_message variants better

This commit is contained in:
Kovid Goyal 2020-10-20 08:30:14 +05:30
parent 790a34d5d9
commit 051bd1a35f
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -76,7 +76,7 @@ class Listener(QLocalServer):
self.message_received.emit(self.pending_messages.pop(connection_id, b'')) self.message_received.emit(self.pending_messages.pop(connection_id, b''))
def send_message_implementation(msg, address=None, timeout=5): def send_message_in_process(msg, address=None, timeout=5):
address = address or gui_socket_address() address = address or gui_socket_address()
if isinstance(msg, str): if isinstance(msg, str):
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
@ -89,7 +89,7 @@ def send_message_implementation(msg, address=None, timeout=5):
else: else:
s.connectToServer(address) s.connectToServer(address)
if not s.waitForConnected(qt_timeout): if not s.waitForConnected(qt_timeout):
raise OSError(f'Failed to connect to Listener at: {address}') raise OSError(f'Failed to connect to Listener at: {address} with error: {s.errorString()}')
data = QByteArray(msg) data = QByteArray(msg)
while True: while True:
written = s.write(data) written = s.write(data)
@ -100,9 +100,9 @@ def send_message_implementation(msg, address=None, timeout=5):
data = data.right(len(data) - written) data = data.right(len(data) - written)
def send_message(msg, address=None, timeout=5, wait_till_sent=False): def send_message_via_worker(msg, address=None, timeout=5, wait_till_sent=False):
# On Windows sending a message in a process that does anything non-trivial # On Windows sending a message in a process that also is listening on the
# like running a Qt Event loop deadlocks, so we do the actual sending in # same named pipe in a different thread deadlocks, so we do the actual sending in
# a simple worker process # a simple worker process
import json import json
import subprocess import subprocess
@ -132,7 +132,7 @@ def test():
l.setText(msg.decode('utf-8')) l.setText(msg.decode('utf-8'))
def send(): def send():
send_message('hello!', wait_till_sent=False) send_message_via_worker('hello!', wait_till_sent=False)
QTimer.singleShot(1000, send) QTimer.singleShot(1000, send)
s = Listener(parent=l) s = Listener(parent=l)