From 06907b302c233dd45789d1d3383fc59989a69d44 Mon Sep 17 00:00:00 2001 From: Sean Ballinger Date: Mon, 12 Aug 2019 17:23:20 -0400 Subject: [PATCH] Fix MacOS TCP_NODELAY error Error is raised by `assert tcp_nodelay == 1` when connecting to an instrument from MacOS. --- koheron/koheron.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/koheron/koheron.py b/koheron/koheron.py index 6002867..250db52 100644 --- a/koheron/koheron.py +++ b/koheron/koheron.py @@ -8,6 +8,7 @@ import json import requests import time +import platform from .version import __version__ @@ -257,10 +258,11 @@ def __init__(self, host='', port=36000, unixsock=''): self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 16384) so_rcvbuf = self.sock.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF) - # Disable Nagle algorithm for real-time response: - self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - tcp_nodelay = self.sock.getsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY) - assert tcp_nodelay == 1 + # Disable Nagle algorithm for real-time response (unnecessary on MacOS) + if platform.system() != 'Darwin': + self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + tcp_nodelay = self.sock.getsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY) + assert tcp_nodelay == 1 # Connect to Kserver self.sock.connect((host, port))