Comment 15 for bug 1848457

Revision history for this message
Dantali0n (dantalion) wrote :

Hello everyone, it has been a while but I have finally figured it out.

The situation occurs due to GreenThreadPoolExecutor. These "thread" offered by eventlet are so called user threads. The kernel is unaware of their existence and hence they are all executed on the same physical / logical core. As a result any blocking / waiting dependency created on these threads that can not be resolved by scheduling between them (deadlock) will cause the main thread to halt as well as the threads spawned.

I know believe that this side-effect is unavoidable when using user threads. I have updated the demo's in the repository so everyone can confirm this for themselves: https://github.com/Dantali0n/bug1848457