As proposed in the Discord #support chat.
Channel:demand() can be used to decrease the CPU consumption of a thread, yet there is no way to abort if a thread is not responding.
So in order to abort this operation, I propose that a timeout is added to
Channel:demand() as an argument so:
Channel:demand(timeout) where timeout is the number of seconds to wait.
After the timeout is met the function should either return
nil or an error (which you can then safely isolate with
A similar thing could be done to
Channel:supply() but I don't know how that would work since the argument may be interpreted as a value to supply.