wine + winamp: fixme:wave:OSS_AddRingMessage two fast messages in the queue!!!!

Eric Pouech pouech-eric at
Sat Mar 12 07:50:56 CST 2005

seut a écrit :
> hello,
> we are using winamp 2.95 with latest wine 0.0.20040914 and are wondering
> what there is about these 'fixme:wave:OSS_AddRingMessage two fast
> messages in the queue!!!!' messages dumped out at the console every few
> seconds...
> Same happens(but with 'ALSA_AddRingMessages' of course) if we're using
> the wine alsa-driver.
> Winamp normally works, but sometimes there is a 15sec pause at the
> playback, so we are trying to search the problem.
> I watched the wine source-code, but as my less C knowledge I didn't
> really understand the part where this 'FIXME' message is implemented.
> As I understand the code, why somebody added the 'FIXME' message to the
> code, if the code can handle this problem(two fast messages)?
> Or can somebody explain me the reason for this 'two fast messages'? 
basically, the playback thread can receive two kinds of messages:
- header message, containing data to be played
- control message (start, stop, pause...), which have to be handled before any 
header message, hence the "fast" notion

what happens in your case is that two different threads in your program (winamp) 
are using APIs which need to send fast messages... we're not prepared for that 
yet (this would just mean adding the new "fast" message after the existing fast 
messages, and before the other ones). the code only assumes there's no existing 
fast message, and just piles the new fast message on top of the queue

BTW, on a pure theoritical analysis, always putting the fast messages at the 
start of the buffer (and even before existing ones) shouldn't hurt, as there's 
no order to be assumed when two threads call the APIs (if the program needs to 
maintain the order, it has to do it at the thread level)

to make a long story short, the FIXME is useless

so, the issue you're seeing come from somewhere else
Eric Pouech

More information about the wine-devel mailing list