From 0bb050c3570f13feefe5c665195d388525081d6b Mon Sep 17 00:00:00 2001 From: Magnus Feuer Date: Fri, 26 Jun 2015 12:29:06 -0700 Subject: release-next: Each outbound message is now run in its own process, alleviating nested callback deadlocks --- components/service_edge/src/service_edge_rpc.erl | 30 +++++++----------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/components/service_edge/src/service_edge_rpc.erl b/components/service_edge/src/service_edge_rpc.erl index ccac474..fb79073 100644 --- a/components/service_edge/src/service_edge_rpc.erl +++ b/components/service_edge/src/service_edge_rpc.erl @@ -638,28 +638,14 @@ forward_message_to_local_service(URL,SvcName, Parameters, _CompSpec) -> %% Deliver the message to the local service, which can %% be either a wse websocket, or a regular HTTP JSON-RPC call - case rvi_common:get_request_result( - dispatch_to_local_service(URL, - message, - {struct, [ { service_name, LocalSvcName }, - { parameters, Parameters }]})) of - - %% Request delivered. - %% -1 is transaction ID. - { ok, _Result } -> - [ ok, -1 ]; - - %% status returned was an error code. - { Other, _Result } -> - ?warning("service_edge:forward_to_local(): ~p:~p Failed: ~p.", - [URL, SvcName, Other]), - [not_found, -1]; - - Other -> - ?warning("service_edge:forward_to_local(): ~p:~p Unknown error: ~p.", - [URL, SvcName, Other]), - [internal, -1] - end. + spawn(fun() -> + rvi_common:get_request_result( + dispatch_to_local_service(URL, + message, + {struct, [ { service_name, LocalSvcName }, + { parameters, Parameters }]})) + end), + [ ok, -1 ]. announce_service_availability(Available, SvcName) -> -- cgit v1.2.1