mirror of
https://github.com/pion/webrtc.git
synced 2024-05-03 11:54:53 +08:00
Fix DataChannel.handleOpen
Take copy of bufferedAmountLowThreshold and onBufferedAmountLow. This allows us to this later without holding the lock.
This commit is contained in:
parent
c785f2524a
commit
48303e5650
@ -303,6 +303,8 @@ func (d *DataChannel) onMessage(msg DataChannelMessage) {
|
||||
func (d *DataChannel) handleOpen(dc *datachannel.DataChannel, isRemote, isAlreadyNegotiated bool) {
|
||||
d.mu.Lock()
|
||||
d.dataChannel = dc
|
||||
bufferedAmountLowThreshold := d.bufferedAmountLowThreshold
|
||||
onBufferedAmountLow := d.onBufferedAmountLow
|
||||
d.mu.Unlock()
|
||||
d.setReadyState(DataChannelStateOpen)
|
||||
|
||||
@ -312,8 +314,8 @@ func (d *DataChannel) handleOpen(dc *datachannel.DataChannel, isRemote, isAlread
|
||||
// * already negotiated datachannels should fire OnOpened
|
||||
if d.api.settingEngine.detach.DataChannels || isRemote || isAlreadyNegotiated {
|
||||
// bufferedAmountLowThreshold and onBufferedAmountLow might be set earlier
|
||||
d.dataChannel.SetBufferedAmountLowThreshold(d.bufferedAmountLowThreshold)
|
||||
d.dataChannel.OnBufferedAmountLow(d.onBufferedAmountLow)
|
||||
d.dataChannel.SetBufferedAmountLowThreshold(bufferedAmountLowThreshold)
|
||||
d.dataChannel.OnBufferedAmountLow(onBufferedAmountLow)
|
||||
d.onOpen()
|
||||
} else {
|
||||
dc.OnOpen(func() {
|
||||
|
Loading…
Reference in New Issue
Block a user