зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1493689 - Defer close of old stream after ICE restart. r=mjf
Differential Revision: https://phabricator.services.mozilla.com/D7626 --HG-- extra : rebase_source : d842ee5e65330177afc3d215f94ef69ab800412b
This commit is contained in:
Родитель
f194bb0339
Коммит
ca982a9fae
|
@ -46,6 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
#include "logging.h"
|
||||
#include "nsError.h"
|
||||
#include "nsThreadUtils.h"
|
||||
|
||||
// nICEr includes
|
||||
extern "C" {
|
||||
|
@ -657,7 +658,11 @@ void NrIceMediaStream::Ready() {
|
|||
if (state_ != ICE_OPEN) {
|
||||
MOZ_MTLOG(ML_DEBUG, "Marking stream ready '" << name_ << "'");
|
||||
state_ = ICE_OPEN;
|
||||
CloseStream(&old_stream_);
|
||||
NS_DispatchToCurrentThread(NewRunnableMethod<nr_ice_media_stream*>(
|
||||
"NrIceMediaStream::DeferredCloseOldStream",
|
||||
this,
|
||||
&NrIceMediaStream::DeferredCloseOldStream,
|
||||
old_stream_));
|
||||
SignalReady(this);
|
||||
}
|
||||
else {
|
||||
|
@ -670,7 +675,11 @@ void NrIceMediaStream::Failed() {
|
|||
MOZ_MTLOG(ML_DEBUG, "Marking stream failed '" << name_ << "'");
|
||||
state_ = ICE_CLOSED;
|
||||
// We don't need the old stream anymore.
|
||||
CloseStream(&old_stream_);
|
||||
NS_DispatchToCurrentThread(NewRunnableMethod<nr_ice_media_stream*>(
|
||||
"NrIceMediaStream::DeferredCloseOldStream",
|
||||
this,
|
||||
&NrIceMediaStream::DeferredCloseOldStream,
|
||||
old_stream_));
|
||||
SignalFailed(this);
|
||||
}
|
||||
}
|
||||
|
@ -696,4 +705,12 @@ NrIceMediaStream::CloseStream(nr_ice_media_stream **stream)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
NrIceMediaStream::DeferredCloseOldStream(const nr_ice_media_stream *old)
|
||||
{
|
||||
if (old == old_stream_) {
|
||||
CloseStream(&old_stream_);
|
||||
}
|
||||
}
|
||||
|
||||
} // close namespace
|
||||
|
|
|
@ -221,6 +221,7 @@ class NrIceMediaStream {
|
|||
DISALLOW_COPY_ASSIGN(NrIceMediaStream);
|
||||
|
||||
void CloseStream(nr_ice_media_stream **stream);
|
||||
void DeferredCloseOldStream(const nr_ice_media_stream *old);
|
||||
|
||||
State state_;
|
||||
nr_ice_ctx *ctx_;
|
||||
|
|
Загрузка…
Ссылка в новой задаче