1 #include <stdlib.h> 2 #include <omp.h> 3 4 struct S 5 { 6 static int s; 7 int v; SS8 S () 9 { 10 #pragma omp atomic 11 s++; 12 } 13 SS14 S (int x) 15 { 16 #pragma omp atomic 17 s++; 18 v = x; 19 } 20 ~SS21 ~S () 22 { 23 #pragma omp atomic 24 s--; 25 } 26 SS27 S (const S &x) 28 { 29 #pragma omp atomic 30 s++; 31 v = x.v; 32 } 33 34 static void verifyS35 verify () 36 { 37 if (s) abort (); 38 } 39 40 void bumpS41 bump () 42 { 43 v++; 44 } 45 }; 46 47 int S::s = 0; 48