c4-project / c4f

The C4 Concurrent C Fuzzer
MIT License
13 stars 1 forks source link

Implement ‘lock blocks’ in IR #179

Closed MattWindsor91 closed 4 years ago

MattWindsor91 commented 4 years ago

To support transactions, as well as C and C++ mutexes, I’m proposing the implementation of ‘lock blocks’ to the IR. These would behave like blocks, but come with a sum type tag that specifies the type of synchronisation, eg:

Making the IR support locks in a generic scoped way would help the fuzzer generate hopefully deadlock-free locks, and generalise nicely over both transactions and locks.

MattWindsor91 commented 4 years ago

Done!