I read that when porting Windows code using EnterCriticalSection etc that you must use pthread_mutex_lock and friends but I'm wondering if there are any differences. In windows the advantage of using critical sections is that they require no switch to kernel mode. Is that the same for the linux pthread mutex?