> But the scheduler doesnt seem to want to run any threads 
> until the previous ones have finished:

This might be related to the scheduler not doing any thread switches in 
C functions. (It can only switch threads between them.)

I would like to see this loosened up, but I understand that it might be 
difficult to implement on all available platforms.