Simplify dc_jsonrpc_init

This commit is contained in:
link2xt
2023-02-27 23:01:22 +00:00
parent b149df1993
commit 2dc04220b8

View File

@@ -4607,33 +4607,22 @@ mod jsonrpc {
return ptr::null_mut(); return ptr::null_mut();
} }
let cmd_api = let account_manager = &*account_manager;
deltachat_jsonrpc::api::CommandApi::from_arc((*account_manager).inner.clone()); let events = block_on(account_manager.read()).get_event_emitter();
let cmd_api = deltachat_jsonrpc::api::CommandApi::from_arc(account_manager.inner.clone());
let (request_handle, receiver) = RpcClient::new(); let (request_handle, receiver) = RpcClient::new();
let request_handle2 = request_handle.clone(); let handle = RpcSession::new(request_handle.clone(), cmd_api);
let handle = RpcSession::new(request_handle, cmd_api);
let events = block_on({ let event_thread = spawn(async move {
async { while let Some(event) = events.recv().await {
let am = (*account_manager).inner.clone(); let event = event_to_json_rpc_notification(event);
let ev = am.read().await.get_event_emitter(); request_handle
drop(am); .send_notification("event", Some(event))
ev .await?;
}
});
let event_thread = spawn({
async move {
while let Some(event) = events.recv().await {
let event = event_to_json_rpc_notification(event);
request_handle2
.send_notification("event", Some(event))
.await?;
}
let res: Result<(), anyhow::Error> = Ok(());
res
} }
let res: Result<(), anyhow::Error> = Ok(());
res
}); });
let instance = dc_jsonrpc_instance_t { let instance = dc_jsonrpc_instance_t {