From f686f74b7f8bcd9987ad4dd30e727f60628e9b32 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Tue, 17 Jan 2023 18:24:18 +0100 Subject: [PATCH] Fix - Harmony - unable to change workfile It was failing on Mac with OSError 9 Bad file descriptor and 48 Address already in use. --- openpype/hosts/harmony/api/server.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/harmony/api/server.py b/openpype/hosts/harmony/api/server.py index 0de359ec61..ecf339d91b 100644 --- a/openpype/hosts/harmony/api/server.py +++ b/openpype/hosts/harmony/api/server.py @@ -40,6 +40,7 @@ class Server(threading.Thread): # Create a TCP/IP socket self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Bind the socket to the port server_address = ("127.0.0.1", port) @@ -91,7 +92,13 @@ class Server(threading.Thread): self.log.info("wait ttt") # Receive the data in small chunks and retransmit it request = None - header = self.connection.recv(10) + try: + header = self.connection.recv(10) + except OSError: + # could happen on MacOS + self.log.info("") + break + if len(header) == 0: # null data received, socket is closing. self.log.info(f"[{self.timestamp()}] Connection closing.")