From 3b8c580611c155bd050891cefa26748592d7b219 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Wed, 5 Sep 2018 02:04:10 +0200 Subject: [PATCH] Revert "serial.write should have a blocking wait if the serial port is busy" This reverts commit 0537d1fcac208932d6694f5cd0d5b710fd4a3271. --- platypush/plugins/serial/__init__.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/platypush/plugins/serial/__init__.py b/platypush/plugins/serial/__init__.py index 8c8cff31..99976c00 100644 --- a/platypush/plugins/serial/__init__.py +++ b/platypush/plugins/serial/__init__.py @@ -131,15 +131,19 @@ class SerialPlugin(GpioSensorPlugin): if isinstance(data, str): data = data.encode('utf-8') - with self.serial_lock: - try: - ser = self._get_serial() - except: - time.sleep(1) - ser = self._get_serial(reset=True) + try: + serial_available = self.serial_lock.acquire(timeout=2) + if serial_available: + try: + ser = self._get_serial() + except: + time.sleep(1) + ser = self._get_serial(reset=True) - self.logger.info('Writing {} to {}'.format(data, self.device)) - ser.write(data) + self.logger.info('Writing {} to {}'.format(data, self.device)) + ser.write(data) + finally: + self.serial_lock.release() # vim:sw=4:ts=4:et: