Checking Concurrency Coding Rules
summary
Combines execution tracing with declarative rule checks to catch concurrency faults: traces are collected with bitman into a Prolog fact store, unit tests are generated by property based testing from a state model, and coding rules are written as prologue predicates that query histories for patterns like multiple monitor enter calls or lost unlocks. The tool flags errors that tests miss; applied to 209 submissions it finds problems in about 35% of cases and reduces debugging effort.
AI-written summary · about
chapters (8)
- 0:00Concurrency rule checking
- 3:53Student submissions workflow
- 12:08Collecting traces with Bitman
- 14:16Analyzing traces with Prolog
- 21:27Results and effectiveness
- 22:31Advantages and limitations
- 25:03Q&A
- 29:03Extending tool beyond errors
related talks
39mLincheck: Testing concurrency on the JVM
16mFray: An Efficient General-Purpose Concurrency Testing Platform for the JVM
01h 11mWorkshop. Lincheck: Testing concurrency on the JVM (Part 2)
01h 10mWorkshop. Lincheck: Testing concurrency on the JVM (Part 1)
50mStructured Concurrency: Managing the Hierarchical Cancelation and Error Handling
52mSTM and Structured Concurrency — The Battle with Multithreading Dragons
38mFixing your performance and concurrency bugs
01h 13mBack from the 70s — the Concurnas concurrency model!
