@ AnyThread public void bodyRemovedFromChannel ( ChatChannel channel , final int bodyId ) { _peerMan . invokeNodeAction ( new ChannelAction ( channel ) { @ Override protected void execute ( ) { ChannelInfo info = _channelMan . _channels . get ( _channel ) ; if ( info != null ) { info . participants . remove ( bodyId ) ; } else if ( _channelMan . _resolving . containsKey ( _channel ) ) { log . warning ( "Oh for fuck's sake, distributed systems are complicated" , "channel" , _channel ) ; } } } ) ; }
When a body loses channel membership this method should be called so that any server that happens to be hosting that channel can be told that the body in question is now a participant .