Modern computers, however, switch between tasks very quickly,
and in multi-core, multi-CPU, or distributed systems, two events
may take place at exactly the same time. Defects rush to fill the
gap between the programmer's model of how a program executes