Thanks for the reply Takashi. Comments inline.
I'm currently porting the sound code of our app from OSS to ALSA but this problem is preventing me from doing so. Is there any way to get around this problem?
What's your problem with fork()?
If our app is the first to start dmix then a copy of the process (app) will remain till the last application closes the shared device.
Right. At least, its resources remain.
Yes this a concern.
So our problem is not fork but fork without *exec*.
And what is your problem more exactly?
We may create a small binary to do exec for the dmix server if this really matters.
Yes this is something we are looking for and will be a great enhancement in the future release of alsa-lib :)
Or, an easier fix is to use more recent kernels. Then there is no longer fork for dmix.
Agreed and thats why we were planning to use the ioctl to determine the sound drv version but somehow ioctl returns failure and not something we would want to rely on. ioctl(spcm->poll_fd, SNDRV_PCM_IOCTL_PVERSION, &ver);
Also our product VMware workstation is supported on wide range of Linux operating systems and so we don't want to restrict with snd drv version > 2.0.8
Thanks, Bankim.