4 ms·
Linux switched to 1:1 threading (NPTL, added 2.4.4) before epoll existed (added 2.4.44). And in general M:N threading disappeared before massively concurrent as
by wahern 6y ago
Linux switched to 1:1 threading (NPTL, added 2.4.4) before epoll existed (added 2.4.44). And in general M:N threading disappeared before massively concurrent asynchronous I/O architectures became popular.[1] Before the latter came, M:N threading was needless complexity; e.g. nobody was actively using and evolving scheduler activation kernel interfaces. And many of the benefits of M:N threading can't be realized when shoehorned into the POSIX thread model; e.g. concept of multiple, user-controlled schedulers or of explicitly passing control flow to a specific thread (yield/resume, switchto) have no place in that model.
[1] Solaris had /dev/poll and NetBSD had kqueue before M:N threading went away, but the developments were relatively close in time and definitely before O(1) polling became widely used outside a few high-profile projects.