D, obviously, but weighted heavily towards B. With the draft 4 scheduler, it was easy to have applications wherearne_v wrote: ↑Mon May 01, 2023 7:50 amAh. Now I remember. Threads in 5.5 1991 and kernel threads in 7.0 1995 (and not on VAX).
Do you remember what was the cause of the "brittleness":
A) bugs in first implementation
B) developers unfamiliar with the concept of threads at the time
C) the fact that Alpha has a very weak memory model so stuff that may work elsewhere may not work on Alpha
D) all of the above
?
threads only ever suspended at synchronization points (waits), never switching to another thread due to time
slice expiration. This can obscure race conditions that bite you when you have actual concurrent execution.
The memory model on Alpha didn't help, but proper use of mutexes should keep things consistent.