title: Clean up a thread without .join() and without blocking the main thread
body: <p>I am in a situation where I have two endpoints I can ask for a value, and one may be faster than the other. The calls to the endpoints are blocking. I want to wait for one to complete and take that result without waiting for the other to complete.</p>
  
  <p>My solution was to issue the requests in separate threads and have those threads set a flag to true when they complete. In the main thread, I continuously check the flags (I know it is a busy wait, but that is not my primary concern right now) and when one completes it takes that value and returns it as the result. </p>
  
  <p>The issue I have is that I never clean up the other thread. I can't find any way to do it without using <code>.join()</code>, which would just block and defeat the purpose of this whole thing. So, how can I clean up that other, slower thread that is blocking without joining it from the main thread?</p>