% Predefined journal names: % acmcs: Computing Surveys acta: Acta Infomatica % cacm: Communications of the ACM % ibmjrd: IBM J. Research & Development ibmsj: IBM Systems Journal % ieeese: IEEE Trans. on Soft. Eng. ieeetc: IEEE Trans. on Computers % ieeetcad: IEEE Trans. on Computer-Aided Design of Integrated Circuits % ipl: Information Processing Letters jacm: Journal of the ACM % jcss: J. Computer & System Sciences scp: Science of Comp. Programming % sicomp: SIAM J. on Computing tocs: ACM Trans. on Comp. Systems % tods: ACM Trans. on Database Sys. tog: ACM Trans. on Graphics % toms: ACM Trans. on Math. Software toois: ACM Trans. on Office Info. Sys. % toplas: ACM Trans. on Prog. Lang. & Sys. % tcs: Theoretical Computer Science @string{ieeepds="IEEE Transactions on Parallel and Distributed Systems"} @string{ieeese="IEEE Transactions on Software Engineering"} @string{spe="Software---\-Practice and Experience"} @string{sigplan="SIGPLAN Notices"} @string{joop="Journal of Object-Oriented Programming"} @string{popl="Conference Record of the ACM Symposium on Principles of Programming Languages"} @string{osr="Operating Systems Review"} @string{pldi="Programming Language Design and Implementation"} @inproceedings{wolke17, title={Locality-Guided Scheduling in {CAF}}, author={W{\"o}lke, Sebastian and Hiesgen, Raphael and Charousset, Dominik and Schmidt, Thomas C}, booktitle={Proceedings of the 7th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control}, pages={11--20}, year={2017} } @article{Roscoe88, title={The Laws of {OCCAM} Programming}, author={Roscoe, Andrew William and Hoare, Charles Antony Richard}, journal={Theoretical Computer Science}, volume={60}, number={2}, pages={177--229}, year={1988}, publisher={Elsevier} } @article{Pike84, title={The UNIX System: The {Blit}: A Multiplexed Graphics Terminal}, author={Pike, Rob}, journal={AT\&T Bell Laboratories Technical Journal}, volume={63}, number={8}, pages={1607--1631}, year={1984}, publisher={Nokia Bell Labs} } @inproceedings{Dice11, title={Brief Announcement: Multilane-a Concurrent Blocking Multiset}, author={Dice, David and Otenko, Oleksandr}, booktitle={Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures}, pages={313--314}, year={2011} } @misc{go:chan, author = "The Go Programming Language", title = "src/runtime/chan.go", howpublished = {\url{https://go.dev/src/runtime/chan.go}}, note = "[Online; accessed 23-May-2023]" } @misc{go:select, author = "The Go Programming Language", title = "src/runtime/select.go", howpublished = {\url{https://go.dev/src/runtime/select.go}}, note = "[Online; accessed 23-May-2023]" } @misc{go:sched, author = "The Go Programming Language", title = "src/runtime/proc.go", howpublished = {\url{https://go.dev/src/runtime/proc.go}}, note = "[Online; accessed 23-May-2023]" } @misc{go:selectref, author = "The Go Programming Language Specification", title = "Select statements", howpublished = {\url{https://go.dev/ref/spec#Select\_statements}}, note = "[Online; accessed 23-May-2023]" } @misc{boost:channel, author = "Boost C++ Libraries", title = "experimental::basic\_concurrent\_channel", howpublished = {\url{https://www.boost.org/doc/libs/master/doc/html/boost\_asio/reference/experimental\__basic\_concurrent\_channel.html}}, note = "[Online; accessed 23-May-2023]" } @misc{rust:channel, author = "The Rust Standard Library", title = "std::sync::mpsc::sync\_channel", howpublished = {\url{https://doc.rust-lang.org/std/sync/mpsc/fn.sync\_channel.html}}, note = "[Online; accessed 23-May-2023]" } @misc{rust:select, author = "The Rust Standard Library", title = "Macro futures::select", howpublished = {\url{https://docs.rs/futures/latest/futures/macro.select.html}}, note = "[Online; accessed 23-May-2023]" } @misc{java:allof:anyof, author = "Java Util Concurrent", title = "Class CompletableFuture", howpublished = {\url{https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html}}, note = "[Online; accessed 23-May-2023]" } @misc{ocaml:channel, author = "The OCaml Manual", title = "OCaml library : Event", howpublished = {\url{https://v2.ocaml.org/api/Event.html}}, note = "[Online; accessed 23-May-2023]" } @misc{haskell:channel, author = "The Haskell Package Repository", title = "Control.Concurrent.Chan", howpublished = {\url{https://hackage.haskell.org/package/base-4.18.0.0/docs/Control-Concurrent-Chan.html}}, note = "[Online; accessed 23-May-2023]" } @misc{linux:select, author = "Linux man pages", title = "select(2) - Linux manual page", howpublished = {\url{https://man7.org/linux/man-pages/man2/select.2.html}}, note = "[Online; accessed 23-May-2023]" } @misc{linux:poll, author = "Linux man pages", title = "poll(2) - Linux manual page", howpublished = {\url{https://man7.org/linux/man-pages/man2/poll.2.html}}, note = "[Online; accessed 23-May-2023]" } @misc{linux:epoll, author = "Linux man pages", title = "epoll(7) - Linux manual page", howpublished = {\url{https://man7.org/linux/man-pages/man7/epoll.7.html}}, note = "[Online; accessed 23-May-2023]" } @misc{linux:iouring, author = "Linux man pages", title = "io\_uring(7) - Linux manual page", howpublished = {\url{https://man7.org/linux/man-pages/man7/io\_uring.7.html}}, note = "[Online; accessed 23-May-2023]" } @article{Ichbiah79, title={Preliminary Ada Reference Manual}, author={Ichbiah, Jean D}, journal={ACM Sigplan Notices}, volume={14}, number={6a}, pages={1--145}, year={1979}, publisher={ACM New York, NY, USA} } @misc{cpp:whenany, author = "C++ reference", title = "std::experimental::when\_any", howpublished = {\url{https://en.cppreference.com/w/cpp/experimental/when\_any}}, note = "[Online; accessed 23-May-2023]" } @techreport{wilson94, title={The {SUIF} Compiler System: a Parallelizing and Optimizing Research Compiler}, author={Wilson, Robert and French, Robert and Wilson, Christopher and Amarasinghe, Saman and Anderson, Jennifer and Tjiang, Steve and Liao, Shih-Wei and Tseng, Chau-Wen and Hall, Mary and Lam, Monica and others}, year={1994}, institution={Stanford University Technical Report No. CSL-TR-94-620} } @misc{haskell:parallel, author = "Haskell Wiki", title = "Parallel Haskell", howpublished = {\url{https://wiki.haskell.org/Parallel}}, note = "[Online; accessed 23-May-2023]" } @misc{gcc:atomics, author = "GCC team", title = "Built-in Functions for Memory Model Aware Atomic Operations", howpublished = {\url{https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html}}, note = "[Online; accessed 23-May-2023]" } @inproceedings{Doherty04, title={DCAS is Not a Silver Bullet for Nonblocking Algorithm Design}, author={Doherty, Simon and Detlefs, David L and Groves, Lindsay and Flood, Christine H and Luchangco, Victor and Martin, Paul A and Moir, Mark and Shavit, Nir and Steele Jr, Guy L}, booktitle={Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures}, pages={216--224}, year={2004} } @manual{IntelManual, keywords = {Intel}, title = {Intel 64 and IA-32 Architectures Software Developer's Manual}, version = {Version 080}, organization= {Intel}, month = mar, year = 2023, } @inproceedings{Harris02, title={A practical multi-word compare-and-swap operation}, author={Harris, Timothy L and Fraser, Keir and Pratt, Ian A}, booktitle={Distributed Computing: 16th International Conference, DISC 2002 Toulouse, France, October 28--30, 2002 Proceedings 16}, pages={265--279}, year={2002}, organization={Springer} } @misc{kotlin:channel, author = "Kotlin Documentation", title = "Channel", howpublished = {\url{https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/}}, note = "[Online; accessed 11-September-2023]" }