File tree 1 file changed +5
-3
lines changed
1 file changed +5
-3
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ import (
20
20
"encoding/base64"
21
21
"io"
22
22
"strconv"
23
+ "sync/atomic"
23
24
"time"
24
25
25
26
log "github.com/sirupsen/logrus"
@@ -42,7 +43,7 @@ type serport struct {
42
43
43
44
// Keep track of whether we're being actively closed
44
45
// just so we don't show scary error messages
45
- isClosing bool
46
+ isClosing atomic. Bool
46
47
47
48
isClosingDueToError bool
48
49
@@ -79,7 +80,7 @@ func (p *serport) reader() {
79
80
n , err := p .portIo .Read (serialBuffer )
80
81
81
82
//if we detect that port is closing, break out of this for{} loop.
82
- if p .isClosing {
83
+ if p .isClosing . Load () {
83
84
strmsg := "Shutting down reader on " + p .portConf .Name
84
85
log .Println (strmsg )
85
86
h .broadcastSys <- []byte (strmsg )
@@ -298,7 +299,8 @@ func spHandlerOpen(portname string, baud int) {
298
299
}
299
300
300
301
func (p * serport ) Close () {
301
- p .isClosing = true
302
+ p .isClosing .Store (true )
303
+
302
304
p .bufferFlow .Close ()
303
305
p .portIo .Close ()
304
306
serialPorts .MarkPortAsClosed (p .portName )
You can’t perform that action at this time.
0 commit comments