Sha256: 0fa6f537381bc3ad66ac605ce00aaec3d8edf8f51d5c27caea391e0c07519c4d
Contents?: true
Size: 1001 Bytes
Versions: 1
Compression:
Stored size: 1001 Bytes
Contents
-module(ernie_native). -export([process/2]). -include_lib("ernie.hrl"). process(ActionTerm, Request) -> {_Type, Mod, Fun, Args} = ActionTerm, Sock = Request#request.sock, logger:debug("Calling ~p:~p(~p)~n", [Mod, Fun, Args]), try apply(Mod, Fun, Args) of Result -> logger:debug("Result was ~p~n", [Result]), Data = bert:encode({reply, Result}), gen_tcp:send(Sock, Data) catch exit:Error -> handle_error(Sock, Error); error:Error -> handle_error(Sock, Error) end, ok = gen_tcp:close(Sock), Log = Request#request.log, Log2 = Log#log{tdone = erlang:now()}, Request2 = Request#request{log = Log2}, ernie_access_logger:acc(Request2). handle_error(Sock, Error) -> BError = list_to_binary(io_lib:format("~p", [Error])), Trace = erlang:get_stacktrace(), BTrace = lists:map(fun(X) -> list_to_binary(io_lib:format("~p", [X])) end, Trace), Data = term_to_binary({error, [user, 0, <<"RuntimeError">>, BError, BTrace]}), gen_tcp:send(Sock, Data).
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
schleyfox-ernie-2.2.3 | elib/ernie_native.erl |