time it takes to reastart gen_server

Dietmar Schaefer <>
Tue Jan 3 12:46:48 CET 2006


Happy new year !


I am trying to develop a gen_server which starts a unix process


do(ExtPrg) -> 
    process_flag(trap_exit, true),                           %% to get 
informed when process terminates
    Port = open_port({spawn, ExtPrg}, [{packet, 2}]),        %% ExtProg 
also includes parameter
    loop(Port).



loop(Port) ->
    receive
    {'EXIT',Port,Reason}   ->   io:format("external program exited~n 
Reason=~p Port=~p~n",[Reason,Port]),    %port program died
                    gen_server:call(self(),stop)   %% all work is done - 
go home
    end.



   
This gen_server is supervised by a  supervisor.

init(_Args) ->   
    case  whereis(watchdog) of
    undefined ->                    %% register only once
     register(watchdog, self());
    _ -> ok
    end,


Xclock = {xclock,{xclock,start_link,["/usr/X11R6/bin/xclock"]},
      permanent,brutal_kill,worker,[xclock]},

Xterm =  {xterm,{xterm,start_link,["/usr/bin/xterm"]},
       permanent,brutal_kill,worker,[xterm]},

    {ok,{{one_for_one,1,6}, [Xclock,Xterm]}}.


It takes 5 seconds to restart my xclock after I closed it.

How can I fasten it up ?

regards


Dietmar



More information about the erlang-questions mailing list