anchor.diff:      Type         = ?SOCKET_TYPE(Config),
       {ok, LSock1} = ?LISTEN(Config),
       F  = fun(S, Fun) -> spawn_monitor(fun() -> Fun(S, Self) end) end,
  -    F1 = fun(Socket, Parent) -> 
  +    F1 = fun(Socket, Parent) when is_pid(Parent) ->
   		 ?P("[client] create monitor"),
   		 MRef = inet:monitor(Socket),
   		 Parent ! {self(), ready},
  
positive.code:     Self         = self(),
      {OwnerPid, OwnerMon} =
  	spawn_monitor(fun() ->
  			      {ok, L} = ?LISTEN(Config),
  			      Self ! {socket, L},
  			      receive
  				  {Self, die} ->
  				      exit(normal)
  
negative.code:     F  = fun(S, Fun, Name) ->
  		 spawn_monitor(fun() -> Fun(S, Name, Self) end)
  	 end,
      F1 = fun(Socket, Name, Parent) when is_list(Name) andalso is_pid(Parent) ->
  		 ?P("[~s] monitor socket", [Name]),
  		 MRef = inet:monitor(Socket),
  		 Parent ! {self(), ready},
  