AutoSynch: An Automatic-Signal Monitor Based on Predicate Tagging
Wei-Lun Hung, Vijay K. Garg

TL;DR
AutoSynch introduces an automatic signaling monitor in Java that eliminates concurrency bugs caused by manual signaling, achieving comparable or better efficiency than explicit signaling methods through innovative techniques like globalization, relay invariance, and predicate tagging.
Contribution
AutoSynch presents a novel automatic signaling monitor that simplifies concurrent programming and improves efficiency by removing the need for explicit signaling, using new techniques like globalization and predicate tagging.
Findings
AutoSynch is nearly as fast as explicit signaling monitors.
AutoSynch outperforms explicit signaling in some cases by avoiding signalAll.
AutoSynch effectively handles common synchronization problems like producer-consumer and dining philosophers.
Abstract
Most programming languages use monitors with explicit signals for synchronization in shared-memory programs. Requiring program- mers to signal threads explicitly results in many concurrency bugs due to missed notifications, or notifications on wrong condition variables. In this paper, we describe an implementation of an au- tomatic signaling monitor in Java called AutoSynch that eliminates such concurrency bugs by removing the burden of signaling from the programmer. We show that the belief that automatic signaling monitors are prohibitively expensive is wrong. For most problems, programs based on AutoSynch are almost as fast as those based on explicit signaling. For some, AutoSynch is even faster than explicit signaling because it never uses signalAll, whereas the programmers end up using signalAll with the explicit signal mechanism. AutoSynch achieves efficiency in synchronization…
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.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Distributed systems and fault tolerance
