Пример #1
0
        task_ptr call(
            const dsn_address_t& server,
            dsn_message_t request,
            servicelet* owner,
            rpc_reply_handler callback,
            int reply_hash
            )
        {
            task_ptr tsk = new safe_task<rpc_reply_handler >(callback);

            if (callback != nullptr)
                tsk->add_ref(); // released in exec_rpc_response

            auto t = dsn_rpc_create_response_task(
                request,
                callback != nullptr ? safe_task<rpc_reply_handler >::exec_rpc_response : nullptr,
                (void*)tsk,
                reply_hash
                );
            tsk->set_task_info(t);
            dsn_rpc_call(server, t, owner ? owner->tracker() : nullptr);

            return tsk;
        }
Пример #2
0
DSN_PY_API void dsn_rpc_call_helper(uint64_t addr, dsn_task_t rpc_call)
{
	dsn_rpc_call(*(dsn_address_t*)&addr, rpc_call);
}