forked from I2P_Developers/i2p.i2p
Transport: Fix UPnP deadlock
This commit is contained in:
@@ -977,7 +977,10 @@ public class TransportManager implements TransportEventListener {
|
|||||||
_upnpUpdateQueued = true;
|
_upnpUpdateQueued = true;
|
||||||
_context.simpleTimer2().addEvent(new UpdatePorts(), 3250);
|
_context.simpleTimer2().addEvent(new UpdatePorts(), 3250);
|
||||||
} else {
|
} else {
|
||||||
_upnpManager.update(getPorts());
|
// throw onto timer to avoid deadlock
|
||||||
|
//_upnpManager.update(getPorts());
|
||||||
|
_upnpUpdateQueued = true;
|
||||||
|
_context.simpleTimer2().addEvent(new UpdatePorts(), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -991,9 +994,10 @@ public class TransportManager implements TransportEventListener {
|
|||||||
*/
|
*/
|
||||||
private class UpdatePorts implements SimpleTimer.TimedEvent {
|
private class UpdatePorts implements SimpleTimer.TimedEvent {
|
||||||
public void timeReached() {
|
public void timeReached() {
|
||||||
|
Set<Port> ports = getPorts();
|
||||||
synchronized (_upnpManager) {
|
synchronized (_upnpManager) {
|
||||||
_upnpUpdateQueued = false;
|
_upnpUpdateQueued = false;
|
||||||
_upnpManager.update(getPorts());
|
_upnpManager.update(ports);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user