Implementing parallel software is hard. On top of all the kinds of bugs that may be present in sequential code, parallel code can also suffer from race conditions. A race condition exists when several threads access the same data at the same time and at least one of them writes to it. Opening the door […]