An Efficient Implementation of Guard-Based Synchronization for an Object-Oriented Programming Language

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Yao, Shucai, Sekerinski, Emil
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866915307158765568
author Yao, Shucai
Sekerinski, Emil
author_facet Yao, Shucai
Sekerinski, Emil
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2505_20850
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle An Efficient Implementation of Guard-Based Synchronization for an Object-Oriented Programming Language
Yao, Shucai
Sekerinski, Emil
Programming Languages
Distributed, Parallel, and Cluster Computing
Logic in Computer Science
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.
title An Efficient Implementation of Guard-Based Synchronization for an Object-Oriented Programming Language
topic Programming Languages
Distributed, Parallel, and Cluster Computing
Logic in Computer Science
url https://arxiv.org/abs/2505.20850