http://bugs.winehq.org/show_bug.cgi?id=14717
--- Comment #30 from Alexander E. Patrakov patrakov@gmail.com 2010-11-27 12:15:43 CST --- Unfortunately, the InterlockedIncrement-based synchronozation still looks wrong. Suppose that two threads call the DSOUND_CreateFIR() function simultaneously. Then, obviously, only one copy will fill in the values. The other copy will return immediately, as if the FIR is already filled. Then the thread that called that copy will immediately continue, with the assumption that the FIR is ready, while in fact it isn't yet.