This is an Erlang solution to "The Santa Claus problem", % as discussed by Simon Peyton Jones (with a Haskell solution using % Software Transactional Memory) in "Beautiful code". % He quotes J.A.Trono "A new exercise in concurrency", SIGCSE 26:8-10, 1994.
A full stack, reactive architecture for general purpose programming. Algebraic and monadically composable primitives for concurrency, parallelism, event handling, transactions, multithreading, Web, and distributed computing with complete de-inversion of control (No callbacks, no blocking, pure state)
The C++ standardization committee is hard at work standardizing threads for the next version of C++. Some members recently met to discuss the issues, and The C++ Source was there. Read on to learn what the world’s leading experts on concurrency are plan
The result is a unified concurrency model providing both thread abstractions and event abstractions. We implemented the unified concurrency model in Haskell Our implementation demonstrates how to use these techniques by building an application-level thread library with support for multiprocessing and asynchronous I/O mechanisms in Linux. The thread library is type-safe, is relatively simple to implement, and has good performance. Application-level threads are extremely lightweight (scaling to 10,000,000 threads!) and our scheduler, which is implemented as a modular and extensible event-driven system, outperforms NPTL in I/O benchmarks.
R. Utterback, K. Agrawal, J. Fineman, and I. Lee. Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, page 83--94. ACM, (2016)
A. Matveev, N. Shavit, P. Felber, and P. Marlier. Proceedings of the 25th Symposium on Operating Systems Principles, page 168--183. New York, NY, USA, ACM, (2015)
H. Sun, D. Bonetta, F. Schiavio, and W. Binder. Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization, page 61--72. IEEE Press, (2019)
M. Frigo, P. Halpern, C. Leiserson, and S. Lewin-Berlin. Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures, page 79--90. New York, NY, USA, ACM, (2009)
M. Nielsen, V. Sassone, and G. Winskel. A Decade of Concurrency, Reflections and Perspectives, REX School/Symposium, page 425--476. London, UK, Springer-Verlag, (1994)
B. Morandi, S. Bauer, and B. Meyer. Advanced Lectures on Software Engineering, LASER Summer School 2007/2008, volume 6029 of Lecture Notes in Computer Science, page 41-90. Springer, (2008)
B. Claudel, Q. Sabah, and J. Stefani. Formal Techniques for Distributed Objects, Components, and Systems, volume 9039 of Lecture Notes in Computer Science, Springer, (2015)
J. Bezivin. OOPSLA '87: Conference proceedings on Object-oriented programming systems, languages and applications, page 394--405. New York, NY, USA, ACM, (1987)