more locks
All checks were successful
Build and Publish / BuildAndDeployAmd64 (push) Successful in 27s
Build and Publish / BuildAndDeploy (push) Successful in 2m30s

This commit is contained in:
matst80
2024-11-21 18:54:18 +01:00
parent 86d310c80f
commit 893abe9ae2
2 changed files with 31 additions and 19 deletions

View File

@@ -80,15 +80,14 @@ func (c *Connection) CallAsync(msg FrameType, payload []byte, ch chan<- FrameWit
}
go WaitForFrame(conn, ch)
toSend := MakeFrameWithPayload(msg, 1, payload)
err = SendFrame(conn, &toSend)
if err != nil {
log.Printf("Error sending frame: %v\n", err)
close(ch)
conn.Close()
return nil, err
}
go func(toSend FrameWithPayload) {
err = SendFrame(conn, &toSend)
if err != nil {
log.Printf("Error sending frame: %v\n", err)
//close(ch)
//conn.Close()
}
}(MakeFrameWithPayload(msg, 1, payload))
c.count++
return conn, nil
@@ -97,10 +96,13 @@ func (c *Connection) CallAsync(msg FrameType, payload []byte, ch chan<- FrameWit
func (c *Connection) Call(msg FrameType, data []byte) (*FrameWithPayload, error) {
ch := make(chan FrameWithPayload, 1)
conn, err := c.CallAsync(msg, data, ch)
if err != nil {
return nil, err
}
defer conn.Close()
select {
case ret := <-ch:
return &ret, nil