03057367

By: Greg Pfeil <greg@technomadic.org>

zcash_client_backend: Add `decryptor::Handle::{closed, is_closed}`

The queuing methods cannot report whether the engine is alive. `send` is a
permit acquisition followed by an infallible push, so a request that acquires
its permit concurrently with the engine's drop is still queued, and `None`
never comes. Nothing drains that request either: the receiver's drop only
drains what was already queued, and the channel itself is freed when the last
`Handle` goes, so the request's `on_complete` outlives the engine and its
receiver resolves neither way.

Callers therefore had no way to distinguish "queued" from "queued into a
channel nobody will read", and awaiting such a receiver parks forever.
Delegate to the underlying sender, which reports receiver liveness directly.
GitHub

Total

4s

Time to Start Worker time Duration Time to finish Idle
Config 13s 4s 4s 17s 13s
Eval - - - - -
Build - - - - -
Suite 13s 4s 4s 17s 13s

Timeline

Config Failed Compressed gap
0s