Skip to content

Commit 67ff5ca

Browse files
authored
fix: non-mainthread engine call (#532)
1 parent fa6a0c7 commit 67ff5ca

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

messenger.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,15 @@ func (m *messenger) SendWithReply(channel string, binaryMessage []byte) (binaryR
5555
Message: binaryMessage,
5656
ResponseHandle: responseHandle,
5757
}
58-
err = m.engine.SendPlatformMessage(msg)
58+
59+
replyErr := make(chan error)
60+
defer close(replyErr)
61+
62+
glfw.PostEmptyEvent()
63+
go m.engineTasker.Do(func() {
64+
replyErr <- m.engine.SendPlatformMessage(msg)
65+
})
66+
err = <-replyErr
5967
if err != nil {
6068
return nil, err
6169
}
@@ -71,7 +79,14 @@ func (m *messenger) Send(channel string, binaryMessage []byte) (err error) {
7179
Channel: channel,
7280
Message: binaryMessage,
7381
}
74-
err = m.engine.SendPlatformMessage(msg)
82+
replyErr := make(chan error)
83+
defer close(replyErr)
84+
85+
glfw.PostEmptyEvent()
86+
go m.engineTasker.Do(func() {
87+
replyErr <- m.engine.SendPlatformMessage(msg)
88+
})
89+
err = <-replyErr
7590
if err != nil {
7691
return err
7792
}

0 commit comments

Comments
 (0)