MySQL Internals Manual  /  Test Synchronization

Chapter 24 Test Synchronization

There is a class of problems that require two or more cooperating threads to reproduce them.

A subclass of these problems is known as "race conditions". They require one thread to execute a certain piece of code while another thread executes another certain piece of code.

The vast majority of race conditions cannot be repeated reliably without some sort of synchronization of the involved threads. In most cases it is unlikely that the threads run through these code pieces at the right time. In this context 'synchronization' means to force the threads to meet at the critical code places.

In this chapter I'll describe some synchronization mechanisms:

  • Sleep

  • Wait Condition

  • Dbug Sleep

  • Error Injection

  • User-Level Locks

  • Debug Sync Point

  • Backup Breakpoint

  • Debug Sync Facility