You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2023/06/20 09:08:40 UTC
[plc4x] 02/03: fix(plc4go/spi): avoid unnecessary read on DefaultCodec shutdown
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit fe996814aebc9d585e35e23c93f9286ce1d9d215
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Jun 20 10:48:13 2023 +0200
fix(plc4go/spi): avoid unnecessary read on DefaultCodec shutdown
---
plc4go/spi/default/DefaultCodec.go | 7 +++++--
plc4go/spi/transports/TransportInstance.go | 3 ++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/plc4go/spi/default/DefaultCodec.go b/plc4go/spi/default/DefaultCodec.go
index 4c7b99bca2..209dff1cd8 100644
--- a/plc4go/spi/default/DefaultCodec.go
+++ b/plc4go/spi/default/DefaultCodec.go
@@ -327,8 +327,12 @@ mainLoop:
{
syncer := make(chan struct{})
go func() {
+ defer close(syncer)
+ if !m.running.Load() {
+ err = errors.New("not running")
+ return
+ }
message, err = m.Receive()
- close(syncer)
}()
timeoutTimer := time.NewTimer(m.receiveTimeout)
select {
@@ -339,7 +343,6 @@ mainLoop:
workerLog.Error().Msgf("receive timeout after %s", m.receiveTimeout)
continue mainLoop
}
-
}
if err != nil {
workerLog.Error().Err(err).Msg("got an error reading from transport")
diff --git a/plc4go/spi/transports/TransportInstance.go b/plc4go/spi/transports/TransportInstance.go
index ee121c3a87..3c73356848 100644
--- a/plc4go/spi/transports/TransportInstance.go
+++ b/plc4go/spi/transports/TransportInstance.go
@@ -22,13 +22,14 @@ package transports
import (
"context"
"fmt"
+ "io"
)
type TransportInstance interface {
fmt.Stringer
+ io.Closer
Connect() error
ConnectWithContext(ctx context.Context) error
- Close() error
IsConnected() bool