It seems pretty clear that they're used for way more than originally expected (did threads even exist when signals began?) - and I suspect a number of systems use other communication paths already.
It seems pretty clear that they're used for way more than originally expected (did threads even exist when signals began?) - and I suspect a number of systems use other communication paths already.
Signals themselves got new APIs long before signalfd: sigaction and posix real-time signals were already a thing, as were posix threads, when Linux was invented.
It is not as if the UNIX culture was to pay attention to best practices being done on other systems.
So it used very limited tools, like C with its very simple semantics and a preprocessor instead of a module system, very simple kernel mechanisms, etc.
Had AT&T been allowed to sell it, I bet we wouldn't have turned with it everywhere.
[1] https://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/E...
The question is, was that late? Windows NT had kernel threads from the beginning, so maybe a few years earlier. But then it took NT years to become stable enough to be used in servers, so saying they were generally ahead would not be a correct description.
So if Unix is considered late (according to the GGP) and NT not a comparable competitor, who was really early? If anybody.
This is reasonable in a memory-safe language, but means you need some other way to interrupt a read from stdin with ^C.