chore: Replace the crossbeam::ArcCell by arc-swap::ArcSwap

This commit is contained in:
Clément Renault 2019-02-13 15:19:02 +01:00
parent 64929fe5dc
commit e103e1c277
No known key found for this signature in database
GPG Key ID: 0151CDAB43460DAE
2 changed files with 7 additions and 7 deletions

View File

@ -7,7 +7,7 @@ authors = ["Kerollmops <renault.cle@gmail.com>"]
[dependencies] [dependencies]
bincode = "1.0" bincode = "1.0"
byteorder = "1.2" byteorder = "1.2"
crossbeam = "0.6" arc-swap = "0.3"
elapsed = "0.1" elapsed = "0.1"
fst = "0.3" fst = "0.3"
hashbrown = { version = "0.1", features = ["serde"] } hashbrown = { version = "0.1", features = ["serde"] }

View File

@ -11,7 +11,7 @@ use std::ops::{Deref, DerefMut};
use rocksdb::rocksdb_options::{DBOptions, ColumnFamilyOptions}; use rocksdb::rocksdb_options::{DBOptions, ColumnFamilyOptions};
use rocksdb::rocksdb::{Writable, Snapshot}; use rocksdb::rocksdb::{Writable, Snapshot};
use rocksdb::{DB, MergeOperands}; use rocksdb::{DB, MergeOperands};
use crossbeam::atomic::ArcCell; use arc_swap::ArcSwap;
use lockfree::map::Map; use lockfree::map::Map;
use hashbrown::HashMap; use hashbrown::HashMap;
use log::{info, error, warn}; use log::{info, error, warn};
@ -141,7 +141,7 @@ struct DatabaseIndex {
db: Arc<DB>, db: Arc<DB>,
// This view is updated each time the DB ingests an update. // This view is updated each time the DB ingests an update.
view: ArcCell<DatabaseView<Arc<DB>>>, view: ArcSwap<DatabaseView<Arc<DB>>>,
// The path of the mdb folder stored on disk. // The path of the mdb folder stored on disk.
path: PathBuf, path: PathBuf,
@ -175,7 +175,7 @@ impl DatabaseIndex {
let db = Arc::new(db); let db = Arc::new(db);
let snapshot = Snapshot::new(db.clone()); let snapshot = Snapshot::new(db.clone());
let view = ArcCell::new(Arc::new(DatabaseView::new(snapshot)?)); let view = ArcSwap::new(Arc::new(DatabaseView::new(snapshot)?));
Ok(DatabaseIndex { Ok(DatabaseIndex {
db: db, db: db,
@ -204,7 +204,7 @@ impl DatabaseIndex {
let db = Arc::new(db); let db = Arc::new(db);
let snapshot = Snapshot::new(db.clone()); let snapshot = Snapshot::new(db.clone());
let view = ArcCell::new(Arc::new(DatabaseView::new(snapshot)?)); let view = ArcSwap::new(Arc::new(DatabaseView::new(snapshot)?));
Ok(DatabaseIndex { Ok(DatabaseIndex {
db: db, db: db,
@ -233,13 +233,13 @@ impl DatabaseIndex {
let snapshot = Snapshot::new(self.db.clone()); let snapshot = Snapshot::new(self.db.clone());
let view = Arc::new(DatabaseView::new(snapshot)?); let view = Arc::new(DatabaseView::new(snapshot)?);
self.view.set(view.clone()); self.view.store(view.clone());
Ok(view) Ok(view)
} }
fn view(&self) -> Arc<DatabaseView<Arc<DB>>> { fn view(&self) -> Arc<DatabaseView<Arc<DB>>> {
self.view.get() self.view.load()
} }
} }