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
|
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 {
|
} else {
|
||||||
if !req.create {
|
if !req.create {
|
||||||
req.res <- sessionRequestRes{
|
req.res <- sessionRequestRes{
|
||||||
|
Reference in New Issue
Block a user