code: protected synchronized void writerDidExit ()
      {
          // clear out our writer reference
          _writer = null;
          log.debug("Writer thread exited.");
  
          // let the client observers know that we're logged off
          notifyClientObservers(new ObserverOps.Session(_client) {
              @Override protected void notify (SessionObserver obs) {
                  obs.clientDidLogoff(_client);
              }
          });
  
          // now that the writer thread has gone away, we can safely close our socket and let the
          // client know that the logoff process has completed
          closeChannel();
  
          // let the client know when we finally go away
          if (_reader == null) {
              clientCleanup(_logonError);
          }
      }
docs: Callback called by the writer thread when it goes away.