From 98fb79b85e3cfbb547e5340b30623511daf09ef5 Mon Sep 17 00:00:00 2001 From: David Blajda Date: Wed, 8 May 2019 15:38:37 +0000 Subject: :WIP: Move types to a different crate --- src/sync/barrier.rs | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 src/sync/barrier.rs (limited to 'src/sync/barrier.rs') 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>, -} - -struct BarrierRef { - condition: Option + Send>>> -} - -impl Barrier { - - pub fn new() -> Barrier { - Barrier { - inner: Arc::new(Mutex::new( - BarrierRef { - condition: None, - })) - } - } - - pub fn condition(&self, waiter: &impl Waiter) - -> Shared + 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() - } -} - -- cgit v1.2.3