diff options
author | Davide Libenzi <davidel@xmailserver.org> | 2007-05-15 01:40:41 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-15 08:53:59 -0700 |
commit | d47de16c7221968d3eab899d7540efa5ba77af5a (patch) | |
tree | 289c3dc8e4b3121a9a4b1846ae9acbd355b4b541 /lib/string.c | |
parent | faa8b6c3c2e1454175609167a25ae525d075f045 (diff) | |
download | op-kernel-dev-d47de16c7221968d3eab899d7540efa5ba77af5a.zip op-kernel-dev-d47de16c7221968d3eab899d7540efa5ba77af5a.tar.gz |
fix epoll single pass code and add wait-exclusive flag
Fixes the epoll single pass code. During the unlocked event delivery (to
userspace) code, the poll callback can re-issue new events, and we must
receive them correctly. Since we loop in a lockless fashion, we want to be
O(nready), and we don't want to flash on/off the spinlock for every event, we
have the poll callback to use a secondary list to queue events while we're
inside the event delivery loop. The rw_semaphore has been turned into a
mutex. This patch also adds the wait-exclusive flag, as suggested by Davi
Arnaut.
Signed-off-by: Davide Libenzi <davidel@xmailserver.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/string.c')
0 files changed, 0 insertions, 0 deletions