anchor.diff:  	ok ->
   	    receive
                   {info_and_die, Info} ->
  -                    {PortStatus, SockStat, SockStatus} = Info(),
  +                    {PortStatus, SockOpts, SockStat, SockStatus} = Info(),
                       ?P("[sink-loop] info and die: "
                          "~n   Port Status:   ~p"
  +                       "~n   Send Timeout:  ~p"
                          "~n   Socket Stats:  ~p"
                          "~n   Socket Status: ~p",
  -                       [PortStatus, SockStat, SockStatus]),
  +                       [PortStatus, SockOpts, SockStat, SockStatus]),
                       exit(normal)
               after 1 -> ok
               end,
  
positive.code:                 ?P("[para] timeout received from sender 2 (~p, ~p)", [Snd2, N]),
                  2
          after 20000 ->
                  {PortStatus1, SockStat1, SockStatus1} = Info(),
                  ?P("[para] UNEXPECTED timeout(1,~w) when:"
                     "~n   Sender 1 Info: ~p"
                     "~n   Sender 2 Info: ~p"
                     "~n   Port Status:   ~p"
                     "~n   Socket Stats:  ~p"
                     "~n   Socket Status: ~p"
                     "~n   Message Queue: ~p",
                     [AutoClose,
                      (catch process_info(Snd1)),
                      (catch process_info(Snd2)),
                      PortStatus1, SockStat1, SockStatus1,
                      flush([])]),
                  Snd1 ! {info_and_die, Info},
                  Snd2 ! {info_and_die, Info},
  
negative.code:     {A, C}.
  
  timeout_sink_loop(Action) ->
      put(action,  nothing),
      put(sent,    0),
      put(elapsed, 0),
      timeout_sink_loop(Action, 0).
  
  timeout_sink_loop(Action, N) ->
      put(action, send),
      Start   = erlang:monotonic_time(),
      Ret     = Action(),
      Stop    = erlang:monotonic_time(),
      Elapsed = get(elapsed),
      put(elapsed, Elapsed + (Stop - Start)),
      put(action, sent),
  