From eee219b43f92eb113ddceeaf6f411c17e08fe909 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 8 Nov 2016 12:31:18 +0100 Subject: [PATCH] posix: added check for port closing --- serial_unix.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/serial_unix.go b/serial_unix.go index bbbcbce..84488b5 100644 --- a/serial_unix.go +++ b/serial_unix.go @@ -33,16 +33,18 @@ func (port *unixPort) Close() error { return err } - // Send close signal to all pending reads (if any) - port.closeSignal.Write([]byte{0}) + if port.closeSignal != nil { + // Send close signal to all pending reads (if any) + port.closeSignal.Write([]byte{0}) - // Wait for all readers to complete - port.closeLock.Lock() - defer port.closeLock.Unlock() + // Wait for all readers to complete + port.closeLock.Lock() + defer port.closeLock.Unlock() - // Close signaling pipe - if err := port.closeSignal.Close(); err != nil { - return err + // Close signaling pipe + if err := port.closeSignal.Close(); err != nil { + return err + } } return nil }