question: public void close ( ) { LOGGER . debug ( "synchro close" ) ; setClosed ( true ) ; while ( ! isEmpty ( ) || isFiring ( ) && ! checkingThread . isDaemon ( ) ) { try { Thread . sleep ( minWindowSize ) ; } catch ( Exception e ) { LOGGER . debug ( "Exception" ) ; } } }
target:  Close the buffer and deallocate resources. Waits for the buffer to empty in all cases. Empty the buffer first if the listener may not be able to treat requests. If the thread is a daemon thread, this method does not wait for the firing thread to finish, as it may be frozen and we wish to release this thread.