Add javadoc comment for PeerConnection.dispose.

Specifically calling out issue 3721 ("dispose can't be called from a
callback"), which developers frequently run into.

BUG=webrtc:3721
NOTRY=True

Review-Url: https://codereview.webrtc.org/3013573002
Cr-Commit-Position: refs/heads/master@{#19804}
This commit is contained in:
deadbeef 2017-09-12 10:52:14 -07:00 committed by Commit Bot
parent e997381743
commit 43697f6da5

View File

@ -489,6 +489,22 @@ public class PeerConnection {
public native void close();
/**
* Free native resources associated with this PeerConnection instance.
* <p>
* This method removes a reference count from the C++ PeerConnection object,
* which should result in it being destroyed. It also calls equivalent
* "dispose" methods on the Java objects attached to this PeerConnection
* (streams, senders, receivers), such that their associated C++ objects
* will also be destroyed.
* <p>
* Note that this method cannot be safely called from an observer callback
* (PeerConnection.Observer, DataChannel.Observer, etc.). If you want to, for
* example, destroy the PeerConnection after an "ICE failed" callback, you
* must do this asynchronously (in other words, unwind the stack first). See
* <a href="https://bugs.chromium.org/p/webrtc/issues/detail?id=3721">bug
* 3721</a> for more details.
*/
public void dispose() {
close();
for (MediaStream stream : localStreams) {