private void dispose ( final Throwable cause ) { assertUnlocked ( ) ; lock . lock ( ) ; try { if ( procThreads == null ) { // Already disposed return ; } for ( RequestProcessor processor : procThreads ) { processor . dispose ( ) ; } procThreads = null ; } finally { lock . unlock ( ) ; } if ( cause == null ) { fireConnectionClosed ( ) ; } else { fireConnectionClosedOnError ( cause ) ; } lock . lock ( ) ; try { clearEmptyRequest ( ) ; exchanges = null ; cmParams = null ; pendingResponseAcks = null ; pendingRequestAcks = null ; notEmpty . signalAll ( ) ; notFull . signalAll ( ) ; drained . signalAll ( ) ; } finally { lock . unlock ( ) ; } httpSender . destroy ( ) ; schedExec . shutdownNow ( ) ; }
Destroy this session .