mirror of https://github.com/grpc/grpc-java.git
Fix bug 18054433, only register one listener on transport service.
------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=78112905
This commit is contained in:
parent
28fb46ef49
commit
2ce8215b0c
|
|
@ -87,16 +87,8 @@ public final class ChannelImpl extends AbstractService implements Channel {
|
|||
transports.add(newTransport);
|
||||
// activeTransport reference can be changed during calls to the transport, even if we hold the
|
||||
// lock, due to reentrancy.
|
||||
newTransport.addListener(
|
||||
new TransportListener(newTransport), MoreExecutors.directExecutor());
|
||||
if (notifyWhenRunning) {
|
||||
newTransport.addListener(new Listener() {
|
||||
@Override
|
||||
public void running() {
|
||||
notifyStarted();
|
||||
}
|
||||
}, executor);
|
||||
}
|
||||
newTransport.addListener(new TransportListener(newTransport, notifyWhenRunning),
|
||||
MoreExecutors.directExecutor());
|
||||
newTransport.startAsync();
|
||||
return newTransport;
|
||||
}
|
||||
|
|
@ -123,9 +115,11 @@ public final class ChannelImpl extends AbstractService implements Channel {
|
|||
|
||||
private class TransportListener extends Listener {
|
||||
private final ClientTransport transport;
|
||||
private final boolean notifyWhenRunning;
|
||||
|
||||
public TransportListener(ClientTransport transport) {
|
||||
public TransportListener(ClientTransport transport, boolean notifyWhenRunning) {
|
||||
this.transport = transport;
|
||||
this.notifyWhenRunning = notifyWhenRunning;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -146,6 +140,13 @@ public final class ChannelImpl extends AbstractService implements Channel {
|
|||
public void terminated(State from) {
|
||||
transportFailedOrStopped(transport, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void running() {
|
||||
if (notifyWhenRunning) {
|
||||
notifyStarted();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class CallImpl<ReqT, RespT> extends Call<ReqT, RespT> {
|
||||
|
|
|
|||
Loading…
Reference in New Issue