>> import threading >> s = threading.Semaphore(0.5) > > But why would you want to pass a float? It seems like API abuse to me. If something should be changed, Semaphore(arg) should raise a TypeError if arg is not an integer. Victor