An Efficient Implementation of Guard-Based Synchronization for an Object-Oriented Programming Language
Shucai Yao (Huawai Technologies Canada), Emil Sekerinski (McMaster University)

TL;DR
This paper presents an efficient implementation of guard-based synchronization for object-oriented languages, leveraging coroutines and OS threads, significantly improving performance over traditional models in concurrent programming.
Contribution
It introduces a novel, highly efficient implementation of guarded atomic actions in object-oriented languages using coroutines and OS threads, enhancing concurrency performance.
Findings
Lime language's performance surpasses C/Pthreads, Go, Erlang, Java, Haskell on benchmarks.
Efficient synchronization achieved with coroutines, OS worker threads, and object queue management.
Guarded atomic actions can be implemented with high efficiency in object-oriented environments.
Abstract
In the shared variable model of concurrency, guarded atomic actions restrict the possible interference between processes by regions of atomic execution. The guard specifies the condition for entering an atomic region. That is a convenient model for the specification and verification of concurrent programs, but has eschewed efficient execution so far. This article shows how guarded atomic actions, when attached to objects, can be implemented highly efficiently using a combination of coroutines, operating-system worker threads, and dedicated management of object queues and stacks. The efficiency of an experimental language, Lime, is shown to compare favourably with that of C/Pthreads, Go, Erlang, Java, and Haskell on synthetic benchmarks.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
