I want to know what happens the exceptions are not caught inside a greenlet spawn in a gevent.pool. Does it not update the semaphore and make it available so that a new greenlet could be spawn?
I just want to make sure that if the pool has the size of 10 and we have spawn 10 greenlets and all of them throw an uncaught exception, no new greenlets can be spawn. Because they didn't release/terminate in a a normal fashion and the semaphore count is not update.
from gevent import pool
def test(index):
print(index)
raise
p = pool.Pool(size=5)
for i in range(10):
p.spawn(test, i)
p.join()