async fn pcm_worker_loop(
    ex: Executor,
    dstream: DirectionalStream,
    desc_receiver: &mut UnboundedReceiver<DescriptorChain>,
    status_mutex: &Rc<RwLock<WorkerStatus>>,
    sender: &mut UnboundedSender<PcmResponse>,
    period_dur: Duration,
    card_index: usize,
    release_signal: Rc<(RwLock<bool>, Condvar)>
) -> Result<(), Error>