2017-04-23 7 views
3

私は上司にイベントマネージャを追加しようとしていますが、私はこのようなエラーを得た:erlangの管理者に子供を追加するにはどうすればいいですか?

1> test_event_call:start_link(). 
{ok,<0.85.0>} 
2> test_event_call:start_event(). 
{error,{ok,{child,undefined,test_event_proc, 
        {test_event,start,[]}, 
        transient,200000,worker, 
        [test_event]}}} 

スーパーバイザモジュールがtest_event_call.erlです:

-module(test_event_call). 
-behaviour(supervisor). 
-export([start_link/0, start_event/0, init/1]). 

start_link() -> 
    supervisor:start_link({local, ?MODULE}, 
          ?MODULE, []). 

start_event() -> 
    supervisor:start_child(?MODULE, {test_event_proc, 
            {test_event, start, []}, 
            transient, 200000, worker, [test_event]}). 

init(_Args) -> 
    {ok, {{one_for_one, 1, 5}, []}}. 

子供がtest_event.erlです:

-module(test_event). 
-behaviour(gen_event). 
-export([init/1, handle_event/2, handle_call/2, handle_info/2, terminate/2, code_change/3]). 


-export([start/0, log_fun/2]). 

start() -> 
    {ok, _Pid} = gen_event:start_link({local, ?MODULE}), 
    gen_event:add_handler(?MODULE, ?MODULE, []). 

誰でもこのエラーが発生しましたか?

+3

'gen_event:add_handler/3'の戻り値を返すのではなく、' test_event:start() 'から' {ok、Pid} 'を返そうとしてください。 – Dogbert

+0

あなたはおそらく、私のブログ記事「Erlangの監視イベントハンドラ」を見てください。http://blog.differentpla.net/blog/2014/11/07/erlang-sup-event –

答えて

0

返信{ok、Pid}は私の問題を解決します。

+0

コメントまたはそれを補完しますが、コピーするだけではありません。 –

関連する問題