# Class Rpc_client.unbound_async_call

    class unbound_async_call : t -> Rpc_program.t -> string -> Xdr.xdr_value -> [Xdr.xdr_value] Uq_engines.engine

Same as `unbound_async_call`, but with an engine API. The engine is initially in state ``Working 0`. When the call is finished, the engine transitions to ``Done r` where `r` is the response value. If an error happens, it transitions to ``Error e` where `e` is the exception.

One can `abort` the engine, but one caveat: This does not stop the transmission of the current message (the underlying RPC transporter doing this is not aborted). Aborting can only prevent that a message is sent before it is sent, and it can remove the call from the housekeeping data structures before the response arrives. Of course, one can shut the client down to achieve immediate stop of data transmission.