Fun programming problem: a simple lock-free algorithm

Can the program below ever print “oops?”    #include <stdio.h> #include <process.h>   struct Globals {     volatile int start;     int a;     int b;     volatile int end; };   Globals globals;   void WriterThread(void*) {     int i = 0;     while (true) {         globals.start = i;         globals.a = i;…

3