Graph explorer

Pointer Race Freedom

We propose a novel notion of pointer race for concurrent programs manipulating a shared heap. A pointer race is an access to a memory address which was freed, and it is out of the accessor's control whether or not the cell has been re-allocated. We establish two results. (1) Under the assumption of pointer race freedom, it is sound to verify a program running under explicit memory management as if it was running with garbage collection. (2) Even the requirement of pointer race freedom itself can be verified under the garbage-collected semantics. We then prove analogues of the theorems for a stronger notion of pointer race needed to cope with performance-critical code purposely using racy comparisons and even racy dereferences of pointers. As a practical contribution, we apply our results to optimize a thread-modular analysis under explicit memory management. Our experiments confirm a speed-up of up to two orders of magnitude.

6 nodes5 linksoverview mapPointer Race Freedom
6 nodes5 links
Pointer Race Freedom6 visible / 6 total nodes / 11 links
Co-authorshipCo-authorshipCo-authorshipCo-authorshipCo-authorshipCo-authorshipAuthorshipAuthorshipAuthorshipAuthorshipTopic signalWPointer Race Freedompreprint / 2015AFrédéric HazizaResearcherALukáš HolíkResearcherARoland MeyerResearcherASebastian WolffResearcherTProgramming Languages1239 works
PaperSignal 105 links

Pointer Race Freedom

preprint / 2015

Open