Condition variables and monitors are important concurrency and threading abstractions which can help in implementing robust multi-threaded code. Most major programming languages and environments provide implementations of condition variables and monitors out-of-the-box (Java and .NET, for example). Delphi, unfortunately, doesn’t offer such a functionality and because we needed condition variables