Robert Reif wrote:
I just cut the parts out of a bigger patch and I guess I missed something. The memory clearing part is the 8 bit hardware buffer bug fix. The
locking
is to fix the SetFormat bug.
The problem is that when the hardware primary buffer format changes which causes a new buffer to be mmapped, the mixer thread continues to use the old deleted buffer address. The timer callback gets the resource shared which doesn't prevent the primary buffer from changing it's address even with the new locking I tried to add. It's overkill to have the timer callback get the resource exclusive every time because format changes almost never happen and the extra locking is only needed when they do.
Do you mean that the problem occurs only when we change the format? If this bug will cause continuing interval or click noise which I have encountered, your patch is going to be a big help for me. I am really looking forward to having your patch now :-). But take your time; I'll wait until you finish it.