diff options
author | Magnus Feuer <mfeuer@jaguarlandrover.com> | 2015-06-26 12:29:06 -0700 |
---|---|---|
committer | Magnus Feuer <mfeuer@jaguarlandrover.com> | 2015-06-26 12:29:06 -0700 |
commit | 0bb050c3570f13feefe5c665195d388525081d6b (patch) | |
tree | 2215f9be3cf5ccc92a3fce486828948c11fbf3b6 | |
parent | 67ce1910328c6d9085a0b764d86bdfff3255f6c7 (diff) | |
download | rvi_core-0bb050c3570f13feefe5c665195d388525081d6b.tar.gz |
release-next: Each outbound message is now run in its own process, alleviating nested callback deadlocks
-rw-r--r-- | components/service_edge/src/service_edge_rpc.erl | 30 |
1 files 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) -> |