I thought a version of core.async/thread should exist that can cancel the thread it makes if you close the channel