-module(ebb_worker). -export([start_link/3, start_link/4, stop/1]). -export([worker/3, worker/4]). start_link(Func, Args, Receiver) -> try spawn_link(?MODULE, worker, [Func, Args, Receiver]) of Pid -> {ok, Pid} catch Error -> Error end. start_link(Node, Func, Args, Receiver) -> try spawn_link(Node, ?MODULE, worker, [Node, Func, Args, Receiver]) of Pid -> {ok, Pid} catch Error -> Error end. worker(Func, Args, Receiver) -> ebb_event:return(Receiver, apply(Func, Args)). worker(Node, Func, Args, Receiver) -> ebb_event:return(Receiver, apply(Func, Args)), ebb_work_manager:work_finished(Node). stop(Worker) -> exit(Worker, kill).