+struct DataRace {
+ /* Clock and thread associated with first action. This won't change in
+ response to synchronization. */
+
+ thread_id_t oldthread;
+ modelclock_t oldclock;
+ /* Record whether this is a write, so we can tell the user. */
+ bool isoldwrite;
+
+ /* Model action associated with second action. This could change as
+ a result of synchronization. */
+ ModelAction *newaction;
+ /* Record whether this is a write, so we can tell the user. */
+ bool isnewwrite;
+
+ /* Address of data race. */
+ void *address;
+};
+