Heya!
If we look into the pcm example how snd_pcm_poll_descriptors_revents() is used then we can see that the revents parameter apparently is supposed to be a single integer. (which makes a lot of sense to me)
http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html#a3...
However, snd_pcm_wait_nocheck() calls the same function and assumes it is a complete array!
http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm.c;h=74d1d1a...
So what's it now? It makes more sense to me if it would be a single fd.
The problem becomnes visible if someone writes a plugin that wants wakeups from more than one fd because either snd_pcm_wait() using applications start to act weirdly because the revents are not fully initialized or snd_pcm_poll_descriptors_revents() using applications get invalid memory accesses.
This has become visible in the Bluetooth plugin.
I guess nobody has written a plugin that has more than one fd to sleep on yet, right?
Lennart