]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Use version 2 of semaphore provided by kernel umtx code, now if there is
authordavidxu <davidxu@FreeBSD.org>
Wed, 21 Mar 2012 07:12:52 +0000 (07:12 +0000)
committerdavidxu <davidxu@FreeBSD.org>
Wed, 21 Mar 2012 07:12:52 +0000 (07:12 +0000)
commitfd4cb16e863d0646f3495a0cc56ac84b12e50806
treebd0a54e47144fc54f51b89accc01b6c7d2efc480
parent6e96eb9cc7bd4de2fc5d2011547e4ffa46e703d1
Use version 2 of semaphore provided by kernel umtx code, now if there is
no waiters, we still increase and decrease count in user mode without
entering kernel, once there is a waiter, sem_post will enter kernel to
increase count and wake thread up, this is atomicy and allow us to
gracefully destroy semaphore after sem_wait returned.
lib/libc/gen/sem_new.c