Higher-Order Leak and Deadlock Free Locks
Jules Jacobs, Stephanie Balzer
Abstract
Reasoning about concurrent programs is challenging, especially if data is shared among threads. Program correctness can be violated by the presence of data races-whose prevention has been a topic of concern both in research and in practice. The Rust programming language is a prime example, putting the slogan fearless concurrency in practice by not only employing an ownership-based type system for memory management, but also using its type system to enforce mutual exclusion on shared data. Locking, unfortunately, not only comes at the price of deadlocks but shared access to data may also cause memory leaks.
This paper develops a theory of deadlock and leak freedom for higher-order locks in a shared memory concurrent setting. Higher-order locks allow sharing not only of basic values but also of other locks and channels, and are themselves first-class citizens. The theory is based on the notion of a sharing topology, administrating who is permitted to access shared data at what point in the program. The paper first develops higher-order locks for acyclic sharing topologies, instantiated in a -calculus with higher-order locks and message-passing concurrency. The paper then extends the calculus to support circular dependencies with dynamic lock orders, which we illustrate with a dynamic version of Dijkstra's dining philosophers problem. Well-typed programs in the resulting calculi are shown to be free of deadlocks and memory leaks, with proofs mechanized in the Coq proof assistant.
CCS Concepts: • Software and its engineering → Concurrent programming languages.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 13a5d6a0-d08b-4757-8ffe-26e1a2b885f1Cited by top-tier papers1
Ask how each one uses itBuilds on3
- Zooid: a DSL for certified multiparty computation: from mechanised metatheory to certified multiparty processesDavid Castro-Perez, Francisco Ferreira, Lorenzo Gheri, Nobuko YoshidaPLDI 2021 · 25 citations
- Connectivity graphs: a method for proving deadlock freedom based on separation logicJules Jacobs, Stephanie Balzer, Robbert KrebbersPOPL 2022 · 16 citations
- On algebraic abstractions for concurrent separation logicsFrantisek Farka, Aleksandar Nanevski, Anindya Banerjee, Germán Andrés Delbianco et al.POPL 2021 · 7 citations
Related papers
- DRust: Language-Guided Distributed Shared Memory with Fine Granularity, Full Transparency, and Ultra EfficiencyHaoran Ma, Yifan Qiao, Shi Liu, Shan Yu et al.OSDI 2024 · 8 citations
- Modeling Reachability Types with Logical Relations: Semantic Type Soundness, Termination, Effect Safety, and Equational TheoryYuyan Bao, Songlin Jia, Guannan Wei, Oliver Bracevac et al.OOPSLA 2025 · 3 citations
- Rust yDL: A Program Logic for RustDaniel Drodt, Reiner HähnleFM 2026
- When Lifetimes Liberate: A Type System for Arenas with Higher-Order Reachability TrackingSiyuan He, Songlin Jia, Yuyan Bao, Tiark RompfOOPSLA 2026
- RustBelt meets relaxed memoryHoang-Hai Dang, Jacques-Henri Jourdan, Jan-Oliver Kaiser, Derek DreyerPOPL 2020 · 68 citations
