anchor.diff:                 socket_type, seq, rcvd, rseq, id, parent, blocked = [],
                  accept_queue = []}).
   
  --record(state, {ip, sockets = []}).
  +-record(state, {ip, sockets = [], synchronized = true}).
   
   initial_state() ->
     #state{}.
  
positive.code:   case get_socket(S, Id) of
      Sock = #socket{} ->
        Sock#socket.socket == Socket andalso
        Sock#socket.tcp_state == listen;
      false -> false
    end.
  
  
negative.code: deliver_callouts(S, [Id]) ->
    Sock = get_socket(S, Id),
    ?SET(Id, rcvd, Sock#socket.seq).
  
  %% --- synchronize ---
  %% We use this to avoid race conditions between consecutive commands.
  
  synchronize_args(_S) -> [].
  
  synchronize() -> timer:sleep(1).
  
  synchronize_callouts(_, _) ->
    ?APPLY(set_synchronized, [true]).
  
  set_synchronized_next(S, _, [Value]) ->
    S#state{ synchronized = Value }.
  
  %% --- timeout ---
  
  