pub async fn sync_yield<D: DatabaseClient + Sync + Send, R: AsyncRead + Unpin, W: AsyncWrite + Unpin>( db: &mut D, peerdb: Option<Client>, rx: R, tx: W, timeout: Option<Duration>, ) -> Result<()>