mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 15:16:51 +08:00
server: fix freeze caused by race condition
it happened when the server tried to send a request to a session that is being closed.
This commit is contained in:
11
server.go
11
server.go
@@ -394,7 +394,16 @@ func (s *Server) run() {
|
||||
continue
|
||||
}
|
||||
|
||||
ss.request <- req
|
||||
select {
|
||||
case ss.request <- req:
|
||||
case <-ss.ctx.Done():
|
||||
req.res <- sessionRequestRes{
|
||||
res: &base.Response{
|
||||
StatusCode: base.StatusBadRequest,
|
||||
},
|
||||
err: liberrors.ErrServerTerminated{},
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if !req.create {
|
||||
req.res <- sessionRequestRes{
|
||||
|
Reference in New Issue
Block a user