public final boolean unlink ( ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( this , tc , "unlink" , _positionString ( ) ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( this , tc , "cursor count = " + _cursorCount ) ; boolean unlinked = false ; LinkedList parent = _parent ; if ( null != parent ) { synchronized ( parent ) { if ( LinkState . LINKED == _state ) { _state = LinkState . LOGICALLY_UNLINKED ; _tryUnlink ( ) ; unlinked = true ; } else { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( this , tc , "unlink while " + _state ) ; } } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( this , tc , "unlink" , new Object [ ] { Boolean . valueOf ( unlinked ) , _positionString ( ) } ) ; return unlinked ; }
Request that the receiver be unlinked from the list . If the receiver is linked it will be marked as logically unlinked . Note that this will perform a logical unlink which may result in a physical unlink