Yes, they do and it should work (I haven't tried, though).
There is a practical problem when waiting on a futex in multiple
threads using epoll: you need a separate fd per waiter, rather than an
fd per waited-on futex. This is because some uses of futexes depend
on waiters being woken in the exact order that they were queued.
To get this ordering, every waiter must allocate its own fd. The only
practical way to do this is allocate the fd just prior to waiting, and
release it afterwards.
As you can imagine, with many threads this implies a lot of fds, which
are in limited supply, and a high rate of allocation and deallocation,
which may be relatively slow.
-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/