unsafe fn do_unsubscribe_with<F: FnOnce()>(&mut self, f: F) {
        if self.alive {
            self.alive = false;
            if self.reader.remove_consumer() == 1 {
                if self
                    .queue
                    .tail
                    .remove_reader(&self.reader, &self.queue.manager)
                {
                    self.queue.manager.signal.set_reader(SeqCst);
                }
                self.queue.manager.remove_token(self.token);
            }
            fence(SeqCst);
            f()
        }
    }
/// Runs the passed function after unsubscribing the reader from the queue
Runs the passed function after unsubscribing the reader from the queue
Runs the passed function after unsubscribing the reader from the queue
unsafe fn do_unsubscribe_with<F: FnOnce()>(&mut self, f: F) {
        if self.alive {
            self.alive = false;
            if self.reader.remove_consumer() == 1 {
                if self
                    .queue
                    .tail
                    .remove_reader(&self.reader, &self.queue.manager)
                {
                    self.queue.manager.signal.set_reader(SeqCst);
                }
                self.queue.manager.remove_token(self.token);
            }
            fence(SeqCst);
            f()
        }
    }
unsafe fn do_unsubscribe_with < F : FnOnce ( ) > ( & mut self , f : F ) { if self . alive { self . alive = false ; if self . reader . remove_consumer ( ) == 1 { if self . queue . tail . remove_reader ( & self . reader , & self . queue . manager ) { self . queue . manager . signal . set_reader ( SeqCst ) ; } self . queue . manager . remove_token ( self . token ) ; } fence ( SeqCst ) ; f ( ) } }
Runs the passed function after unsubscribing the reader from the queue
Runs the passed function after unsubscribing the reader from the queue
&mut self
f
F
&mut self
f
F