SOFTWARE ERRORS COVERED RACE CONDITIONS AND SYNCHRONIZATION ERRORS: void foo (int *a, mutex*alock, int n, int c) { int i= 0; int sum =0; for (i=0;i<n;i++) { acquire_mutex (alock[i]); old_a= a[i]; a[i]=a[i]+c; check (a[i]==old_a+c) release_mutex(alock[i]); } } Thread modifying contents of a may be in another module Precise analysis required, is unscalable CHECK 10/37
{}