.newSingleThreadScheduledExecutor(specialThreadsFactory);
refreshExecutor.schedule(new RefreshAllocationTask(this.controlConnectionWriter, lifetime),
Math.max(lifetime - ALLOCATION_LIFETIME_ADVANCE, ALLOCATION_LIFETIME_MIN), TimeUnit.SECONDS);
this.messageHandlerTask = new MessageHandlerTask(this.controlConnection, this.controlConnectionWriter,
this.relayServerSocketAddress, this.socketQueue, refreshExecutor);
specialThreadsFactory.newThread(this.messageHandlerTask).start();
}
/**
* Discards the allocation by this client on the relay server. Also
* terminates the periodic refresh requests for the allocation.