fn drop(&mut self) {
        if let Some((_, co)) = self.co_map.remove(&self.id) {
            co.join().ok();
        }
    }
// when the sub coroutine finished will trigger this drop
// if this is called due to a panic then it's not safe
// to call the coroutine mutex lock to trigger another panic
when the sub coroutine finished will trigger this drop
if this is called due to a panic then it's not safe
to call the coroutine mutex lock to trigger another panic
when the sub coroutine finished will trigger this drop if this is called due to a panic then it ' s not safe to call the coroutine mutex lock to trigger another panic
fn drop(&mut self) {
        if let Some((_, co)) = self.co_map.remove(&self.id) {
            co.join().ok();
        }
    }
fn drop ( & mut self ) { if let Some ( ( _ , co ) ) = self . co_map . remove ( & self . id ) { co . join ( ) . ok ( ) ; } }
when the sub coroutine finished will trigger this drop
if this is called due to a panic then it's not safe
to call the coroutine mutex lock to trigger another panic
when the sub coroutine finished will trigger this drop if this is called due to a panic then it ' s not safe to call the coroutine mutex lock to trigger another panic
&mut self
&mut self