1 %%%-------------------------------------------------------------------
2 %%% File : dispatcher.erl
6 %%% Created : 4 Apr 2011 by <>
7 %%%-------------------------------------------------------------------
8 -module(mkrl_dispatcher
).
9 -include("makerl.hrl").
11 -export([build_dependencies
/1,
16 -spec
build_dependencies([pid()]) -> [build_result()].
17 build_dependencies(Pids
) ->
18 rpc:pmap({mkrl_task
, build_pid
}, [], Pids
).
20 -spec
aggregate_results([build_result()]) -> build_result().
21 aggregate_results(ResList
) ->
22 lists:foldl(fun({ok
, X
}, {ok
, Acc
}) ->
24 ({error
, E
}, {_
, Acc
}) ->
26 ({_
, X
}, {Status
, Acc
}) ->
33 -spec
unit() -> build_result().
36 -spec
combine_result(build_result(), build_result()) -> build_result().
37 combine_result({ok
, DepResult
}, {ok
, ThisResult
}) ->
38 {ok
, {ThisResult
, DepResult
}};
39 combine_result({_
, DepResult
}, {error
, ThisResult
}) ->
40 {error
, {ThisResult
, DepResult
}};
41 combine_result({State
, DepResult
}, {_
, ThisResult
}) ->
42 {State
, {ThisResult
, DepResult
}}.