mirror of
https://github.com/pion/webrtc.git
synced 2025-12-24 11:51:03 +08:00
Fixes issue 1822
Previously we could have situations where during first condition like `transceiver.Sender() != nil` there would be another condition like `transceiver.Sender().isNegotiated()` where `.Sender()` could become nil if changed in a different goroutine.
This commit is contained in:
@@ -141,13 +141,13 @@ func (t *RTPTransceiver) Direction() RTPTransceiverDirection {
|
||||
|
||||
// Stop irreversibly stops the RTPTransceiver
|
||||
func (t *RTPTransceiver) Stop() error {
|
||||
if t.Sender() != nil {
|
||||
if err := t.Sender().Stop(); err != nil {
|
||||
if sender := t.Sender(); sender != nil {
|
||||
if err := sender.Stop(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if t.Receiver() != nil {
|
||||
if err := t.Receiver().Stop(); err != nil {
|
||||
if receiver := t.Receiver(); receiver != nil {
|
||||
if err := receiver.Stop(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user