anchor.diff:          #socket{blocked = [Pid | Pids]} ->
             ?UNBLOCK({accept, Pid}, Id),
             ?SET(P, blocked, Pids);
  -        %% false -> %% parent closed, we need to send FIN (patch against impl).
  -        %%   ?APPLY(do_close, [Id]);
  +        false -> %% parent closed, we need to send FIN (patch against impl).
  +          ?APPLY(do_close, [Id]);
           _ -> ?EMPTY
         end;
       fin_wait_1 ->
  
positive.code:     Sock = #socket{} ->
        Sock#socket.socket == Socket andalso
        Socket /= undefined andalso
        in_tcp_state(S, Id, close_states());
      _ ->
        false
    end.
  
negative.code:   spawn.
  
  %% --- close ---
  child_in(S, Id, TcpState) ->
    Children = 
      [ Sock#socket.tcp_state || Sock<-S#state.sockets,
                                 Sock#socket.parent == Id],
    lists:member(TcpState, Children).
  
  close_states() ->
    [established, close_wait, listen].
  