code: void onClientDisconnected(String identifier) throws InterruptedException {
          connectionSemaphore.acquire();
          NineBus.get().post(new GOConnectionEvent(GOConnectionEvent.DISCONNECTED, identifier));
          WfdLog.d(TAG, "Client lost id : " + identifier);
          GOInternalClient c = null;
          if (identifier != null) {
              c = goInternalClients.remove(identifier);
              if (c != null) {
                  signalInstanceLossToGroup(identifier);
              }
          }
          connectionSemaphore.release();
          if (c != null) {
              c.recycle();
          }
      }
docs: called from GoInternalClient