fix race condition on 43 msg creation/closure. Speed up game object insert to db (from 10-12s to 1-2s)
This commit is contained in:
@@ -91,15 +91,23 @@ func (foundry *FoundryApi) ServeWebSocket() error {
|
||||
}
|
||||
|
||||
go func() {
|
||||
err = data.Action(foundry.Transport, &foundry.Status)
|
||||
if err != nil {
|
||||
wsChannels.Err() <- &types.FoundryError{Direction: types.ReaderCode, Err: err, Type: types.WebSocketCode}
|
||||
errAction := data.Action(foundry.Transport, &foundry.Status)
|
||||
|
||||
if errAction != nil {
|
||||
wsChannels.Err() <- &types.FoundryError{Direction: types.ReaderCode, Err: errAction, Type: types.WebSocketCode}
|
||||
}
|
||||
}()
|
||||
case types.RespDataCode:
|
||||
foundry.Transport.ExchangeChan.Msgs[message.Id] = make(chan []byte, 1)
|
||||
foundry.Transport.ExchangeChan.Msgs[message.Id] <- []byte(message.MsgJson)
|
||||
go foundry.Transport.CloseMsgChannel(message.Id, 5*time.Second)
|
||||
tr := foundry.Transport
|
||||
func() {
|
||||
tr.ChanMutex.Lock()
|
||||
defer tr.ChanMutex.Unlock()
|
||||
|
||||
tr.ExchangeChan.Msgs[message.Id] = make(chan []byte, 1)
|
||||
tr.ExchangeChan.Msgs[message.Id] <- []byte(message.MsgJson)
|
||||
go tr.CloseMsgChannel(tr.ExchangeChan.Msgs[message.Id], message.Id, 5*time.Second)
|
||||
|
||||
}()
|
||||
default:
|
||||
}
|
||||
case err = <-wsChannels.Err():
|
||||
|
||||
Reference in New Issue
Block a user