Does your computer have exactly 8 cores (or subcores or whatever is the official name of that hardware feaure)?
What happens if you use 7 futures instead of 8?
What happens if you use 9 (or 100) futures instead of 8?
Gustavo
PS: I don't know the low level details of the implementation of the futures, but my guess is that in your example there is a main thread(?) and 8 futures, so you are running 9 things in 8 cores, and there is a race condition and if you are unlucky it can cause a the program to block.