gui: use RWLock for embedded daemon
This commit is contained in:
parent
0f6b043fb3
commit
675f7fafe7
@ -1,5 +1,5 @@
|
||||
use std::collections::HashMap;
|
||||
use std::sync::Mutex;
|
||||
use std::sync::RwLock;
|
||||
|
||||
use super::{model::*, Daemon, DaemonError};
|
||||
use minisafe::{
|
||||
@ -10,7 +10,7 @@ use minisafe::{
|
||||
|
||||
pub struct EmbeddedDaemon {
|
||||
config: Config,
|
||||
handle: Option<Mutex<DaemonHandle>>,
|
||||
handle: Option<RwLock<DaemonHandle>>,
|
||||
}
|
||||
|
||||
impl EmbeddedDaemon {
|
||||
@ -24,7 +24,7 @@ impl EmbeddedDaemon {
|
||||
pub fn start(&mut self) -> Result<(), DaemonError> {
|
||||
let handle = DaemonHandle::start_default(self.config.clone())
|
||||
.map_err(|e| DaemonError::Start(e.to_string()))?;
|
||||
self.handle = Some(Mutex::new(handle));
|
||||
self.handle = Some(RwLock::new(handle));
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
@ -48,7 +48,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
let next =
|
||||
DaemonHandle::start_default(cfg).map_err(|e| DaemonError::Start(e.to_string()))?;
|
||||
self.handle.take().unwrap().into_inner().unwrap().shutdown();
|
||||
self.handle = Some(Mutex::new(next));
|
||||
self.handle = Some(RwLock::new(next));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -69,7 +69,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
.handle
|
||||
.as_ref()
|
||||
.ok_or(DaemonError::NoAnswer)?
|
||||
.lock()
|
||||
.read()
|
||||
.unwrap()
|
||||
.control
|
||||
.get_info())
|
||||
@ -80,7 +80,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
.handle
|
||||
.as_ref()
|
||||
.ok_or(DaemonError::NoAnswer)?
|
||||
.lock()
|
||||
.read()
|
||||
.unwrap()
|
||||
.control
|
||||
.get_new_address())
|
||||
@ -91,7 +91,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
.handle
|
||||
.as_ref()
|
||||
.ok_or(DaemonError::NoAnswer)?
|
||||
.lock()
|
||||
.read()
|
||||
.unwrap()
|
||||
.control
|
||||
.list_coins())
|
||||
@ -102,7 +102,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
.handle
|
||||
.as_ref()
|
||||
.ok_or(DaemonError::NoAnswer)?
|
||||
.lock()
|
||||
.read()
|
||||
.unwrap()
|
||||
.control
|
||||
.list_spend())
|
||||
@ -117,7 +117,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
self.handle
|
||||
.as_ref()
|
||||
.ok_or(DaemonError::NoAnswer)?
|
||||
.lock()
|
||||
.read()
|
||||
.unwrap()
|
||||
.control
|
||||
.create_spend(coins_outpoints, destinations, feerate_vb)
|
||||
@ -128,7 +128,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
self.handle
|
||||
.as_ref()
|
||||
.ok_or(DaemonError::NoAnswer)?
|
||||
.lock()
|
||||
.read()
|
||||
.unwrap()
|
||||
.control
|
||||
.update_spend(psbt.clone())
|
||||
@ -139,7 +139,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
self.handle
|
||||
.as_ref()
|
||||
.ok_or(DaemonError::NoAnswer)?
|
||||
.lock()
|
||||
.read()
|
||||
.unwrap()
|
||||
.control
|
||||
.delete_spend(txid);
|
||||
@ -150,7 +150,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
self.handle
|
||||
.as_ref()
|
||||
.ok_or(DaemonError::NoAnswer)?
|
||||
.lock()
|
||||
.read()
|
||||
.unwrap()
|
||||
.control
|
||||
.broadcast_spend(txid)
|
||||
@ -161,7 +161,7 @@ impl Daemon for EmbeddedDaemon {
|
||||
self.handle
|
||||
.as_ref()
|
||||
.ok_or(DaemonError::NoAnswer)?
|
||||
.lock()
|
||||
.read()
|
||||
.unwrap()
|
||||
.control
|
||||
.start_rescan(t)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user