use Box for origin::Store
This commit is contained in:
parent
7dd52839b1
commit
51cb6aadce
@ -146,7 +146,7 @@ pub trait Manager: Sync + Send {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct ManagerImpl {
|
struct ManagerImpl {
|
||||||
origin_store: sync::Arc<dyn origin::store::Store>,
|
origin_store: Box<dyn origin::store::Store>,
|
||||||
domain_config_store: sync::Arc<dyn config::Store>,
|
domain_config_store: sync::Arc<dyn config::Store>,
|
||||||
domain_checker: checker::DNSChecker,
|
domain_checker: checker::DNSChecker,
|
||||||
acme_manager: Option<sync::Arc<dyn acme::manager::Manager>>,
|
acme_manager: Option<sync::Arc<dyn acme::manager::Manager>>,
|
||||||
@ -179,22 +179,24 @@ async fn sync_origins(origin_store: &dyn origin::store::Store, canceller: Cancel
|
|||||||
|
|
||||||
pub fn new(
|
pub fn new(
|
||||||
task_stack: &mut util::TaskStack<unexpected::Error>,
|
task_stack: &mut util::TaskStack<unexpected::Error>,
|
||||||
origin_store: sync::Arc<dyn origin::store::Store>,
|
origin_store: Box<dyn origin::store::Store>,
|
||||||
domain_config_store: sync::Arc<dyn config::Store>,
|
domain_config_store: sync::Arc<dyn config::Store>,
|
||||||
domain_checker: checker::DNSChecker,
|
domain_checker: checker::DNSChecker,
|
||||||
acme_manager: Option<sync::Arc<dyn acme::manager::Manager>>,
|
acme_manager: Option<sync::Arc<dyn acme::manager::Manager>>,
|
||||||
) -> sync::Arc<dyn Manager> {
|
) -> sync::Arc<dyn Manager> {
|
||||||
task_stack.spawn(|canceller| {
|
let manager = sync::Arc::new(ManagerImpl {
|
||||||
let origin_store = origin_store.clone();
|
|
||||||
async move { Ok(sync_origins(origin_store.as_ref(), canceller).await) }
|
|
||||||
});
|
|
||||||
|
|
||||||
sync::Arc::new(ManagerImpl {
|
|
||||||
origin_store,
|
origin_store,
|
||||||
domain_config_store,
|
domain_config_store,
|
||||||
domain_checker,
|
domain_checker,
|
||||||
acme_manager,
|
acme_manager,
|
||||||
})
|
});
|
||||||
|
|
||||||
|
task_stack.spawn(|canceller| {
|
||||||
|
let manager = manager.clone();
|
||||||
|
async move { Ok(sync_origins(manager.origin_store.as_ref(), canceller).await) }
|
||||||
|
});
|
||||||
|
|
||||||
|
manager
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Manager for ManagerImpl {
|
impl Manager for ManagerImpl {
|
||||||
|
@ -71,9 +71,9 @@ struct Store {
|
|||||||
origins: sync::RwLock<collections::HashMap<origin::Descr, sync::Arc<Origin>>>,
|
origins: sync::RwLock<collections::HashMap<origin::Descr, sync::Arc<Origin>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(dir_path: PathBuf) -> io::Result<sync::Arc<dyn super::Store>> {
|
pub fn new(dir_path: PathBuf) -> io::Result<Box<dyn super::Store>> {
|
||||||
fs::create_dir_all(&dir_path)?;
|
fs::create_dir_all(&dir_path)?;
|
||||||
Ok(sync::Arc::new(Store {
|
Ok(Box::new(Store {
|
||||||
dir_path,
|
dir_path,
|
||||||
sync_guard: sync::Mutex::new(collections::HashMap::new()),
|
sync_guard: sync::Mutex::new(collections::HashMap::new()),
|
||||||
origins: sync::RwLock::new(collections::HashMap::new()),
|
origins: sync::RwLock::new(collections::HashMap::new()),
|
||||||
|
Loading…
Reference in New Issue
Block a user