summaryrefslogtreecommitdiff
path: root/src/sync
diff options
context:
space:
mode:
authorDavid Blajda <blajda@hotmail.com>2019-05-08 15:38:37 +0000
committerDavid Blajda <blajda@hotmail.com>2019-05-08 15:38:37 +0000
commit98fb79b85e3cfbb547e5340b30623511daf09ef5 (patch)
treea03bd7a95c86a92eb7510409429f50433056d7ab /src/sync
parent0e09c2c06fc0b81f11d12985a4172c815233db17 (diff)
:WIP: Move types to a different crate
Diffstat (limited to 'src/sync')
-rw-r--r--src/sync/barrier.rs47
-rw-r--r--src/sync/mod.rs2
-rw-r--r--src/sync/waiter.rs12
3 files changed, 0 insertions, 61 deletions
diff --git a/src/sync/barrier.rs b/src/sync/barrier.rs
deleted file mode 100644
index c0f21b8..0000000
--- a/src/sync/barrier.rs
+++ /dev/null
@@ -1,47 +0,0 @@
-use super::waiter::Waiter;
-use futures::prelude::*;
-use std::sync::{Arc, Mutex};
-use futures::future::{Shared, SharedError};
-
-use crate::error::ConditionError;
-
-#[derive(Clone)]
-pub struct Barrier {
- inner: Arc<Mutex<BarrierRef>>,
-}
-
-struct BarrierRef {
- condition: Option<Shared<Box<Future<Item=(), Error=ConditionError> + Send>>>
-}
-
-impl Barrier {
-
- pub fn new() -> Barrier {
- Barrier {
- inner: Arc::new(Mutex::new(
- BarrierRef {
- condition: None,
- }))
- }
- }
-
- pub fn condition(&self, waiter: &impl Waiter)
- -> Shared<Box<Future<Item=(), Error=ConditionError> + Send>>
- {
- let mut mut_barrier = self.inner.lock().unwrap();
- let maybe_condition = &mut mut_barrier.condition;
-
- let f = maybe_condition.get_or_insert_with(|| {
- waiter.condition()
- });
-
- let f =
- if let Some(_) = f.peek() {
- let condition = waiter.condition();
- maybe_condition.replace(condition);
- maybe_condition.as_ref().unwrap()
- } else { f };
- f.clone()
- }
-}
-
diff --git a/src/sync/mod.rs b/src/sync/mod.rs
deleted file mode 100644
index 74e4235..0000000
--- a/src/sync/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-pub mod barrier;
-pub mod waiter;
diff --git a/src/sync/waiter.rs b/src/sync/waiter.rs
deleted file mode 100644
index 1005e3d..0000000
--- a/src/sync/waiter.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-use futures::Future;
-use futures::future::{Shared, SharedError};
-use crate::error::ConditionError;
-
-pub trait Waiter {
- type Item: Default;
- type Error: From<SharedError<ConditionError>>;
-
- fn blocked(&self) -> bool;
- fn condition(&self)
- -> Shared<Box<Future<Item=(), Error=ConditionError> + Send>>;
-}