On Jul 12, 2008, at 12:27 PM, David Holland wrote:
You can do a lot of synchronization, as long as it's synchronization with other threads in the same process. Nothing in principle says you need to go into the kernel for every synchronization op; and in fact you shouldn't, unless you're synchronizing with another process or you've run out of runnable threads.
And, on UP systems, you don't. We use restartable atomic sequences on all UP systems in the SA libpthread. If blocking is required, all of the context switching happens within libpthread.
I just don't believe that there are very many apps that actually behave like this.
-- thorpej