Deduplicate concurrent downloads of the same URL
Write a downloader that many threads call with URLs. Downloads of different URLs run in parallel. When several threads ask for the same URL at the same time, only one of them downloads it; the others wait and then all get that same result.
Discuss what the waiting threads should see if the download fails.
No answer yet. Write the first one; the best answer gets endorsed.
