anchor.diff:      after Timeout ->
   	    Pid ! {R, {error, timeout}}
       end.
  -
  --spec terminate(term(), pid()) -> 'ok'.
  -
  -terminate(_Reason, Pid) ->
  -    (catch exit(Pid, kill)),
  -    ok.
   
   %%-----------------------------------------------------------------------
   %% Server API
  
positive.code: -behaviour(supervisor_bridge).
  
  %% Supervisor bridge exports
  -export([start_link/0, init/1, terminate/2, start_raw/0, run_once/0]).
  
  %% Server export
  -export([server_init/2, main_loop/1]).
  
negative.code:     %% open_executable/2 below assumes overlapped_io is at the head
      Opts = [overlapped_io, {args, Args}, {packet,4}, eof, binary],
      RootDir = code:root_dir(),
      Prog = filename:join([RootDir, erts(), "bin", ?PORT_PROGRAM]),
      Cont =
          fun () ->
                  [filename:join([RootDir, "bin", target(), ?PORT_PROGRAM])]
          end,
      open_executable([Prog|Cont], Opts).
  
  open_executable([Prog|Tail] = Progs, Opts) ->
      try open_port({spawn_executable, Prog}, Opts)
      catch
          error : badarg when hd(Opts) =:= overlapped_io ->
              open_executable(Progs, tl(Opts));
          error : enoent ->
              open_executable(Tail, Opts);
          error : Reason ->
              erlang:halt(
                "Can not execute "++Prog++" : "++term2string(Reason))
      end;
  open_executable([], _Opts) ->
      erlang:halt(
        "Can not find "++?PORT_PROGRAM++" for "++erts()++"/"++target());
  open_executable(Cont, Opts) ->
      open_executable(Cont(), Opts).
  %% We regard not being able to start the resolver helper program
  %% as a node fatal error to avoid getting weird malfunction
  %% of name lookups
  
  erts() ->
      "erts-"++erlang:system_info(version).
  target() ->
      erlang:system_info(system_architecture).
  term2string(Term) ->
      unicode:characters_to_list(io_lib:format("~tw", [Term])).
  
  
  
  get_extra_args() ->
  