Messages in this thread | | | Date | Tue, 25 Aug 2009 08:59:33 +0200 | From | Paolo Bonzini <> | Subject | Re: [PATCH 0/2] eventfd: new EFD_STATE flag |
| |
>>> There are userspace libraries that do almost everything, but you hardly >>> see things like pthread_(EFD_STATE-like)_create() or similar system >>> interfaces based on such abstraction. >> >> It actually seems as close to a condition variable as an eventfd can be. > > A pthread condition typical code usage maps to eventfd like: > > while (read(efd, ...)> 0) > if (CONDITION) > break; > > So a pthread condition is really a wakeup gate like eventfd is. > EFD_STATE has nothing to do with a pthread condition.
No, your code does not work for pthread_cond_broadcast (which arguably is the common case) because all the eventfd readers after the first would block.
Paolo
| |