http://bugs.winehq.org/show_bug.cgi?id=14717
--- Comment #35 from Dmitry Timoshkov dmitry@codeweavers.com 2010-11-29 03:45:23 CST --- (In reply to comment #27)
While such functions as EnterCriticalSection exist in Windows API, modern books call them a design error, because they protect code, not data. Also, why use them if the static precalculated FIR achieves the same result (thread safety) without any synchronization primitives?
APIs exist for programmers, and the programmers do decide what they want to protect. Calling a design error an API is at least a confusion, if not a disinformation.