Rust newbie: Need help porting Go code

Posted here related to this topic: How to timeout tokio_threadpool::blocking? - #3 by Kruzer

Seems like rust at the moment doesn't have a way to efficiently cancel blocking code, but I'm still learning rust futures and tasks library.

In C/C++ you can call interrupt on the thread and Go also has pattern for canceling with their select statement on go channels. Crossbeam has select macro but it is not stable and from reading some comments it seems like it may never become stable.

One way would be to use timeouts to cancel but with more than million background tasks it will probably become problematic.