[alsa-devel] Third time: Unlink PCM resource ?

Takashi Iwai tiwai at suse.de
Mon May 25 17:43:58 CEST 2009


At Mon, 25 May 2009 17:30:19 +0200,
Werner Van Belle wrote:
>
> Hello,
> 
> This is the third time I tried to get information on the same topic but
> there has been no response. Since it is crucial for me to get this to
> work, I really would appreciate your input. If necssary I can provide
> further documentation. The problem is as follows: if a process which
> opened a DSP device forks of a new process, then this child will have
> the same handle towards the DSP. What I now want to do is to release the
> handle in the child without closing the device for the parent as well.
> So essentially the sequence below illustrates the problem if one is
> unable to 'unlink' a dsp device.
> 
> a- parent process creates and open dsp device
> b- parent process forks of a child 1. Child 1 has access to the same dsp
> device
> c- parent process closes the DSP device
> d- client process can no longer write to the DSP device (these are
> already odd semantics, but okay, can live with it)
> e- parent process forks of a second child. Child 2 has no dsp device
> f- Child 2 tries to open the DSP device. This fails because the device,
> although closed, is not released yet by Child 1.
> 
> Is this normal behavior ?
> 
> Is there some rigid documentation on the closing and sharing semantics
> of pcm devices ?
> Is there a way to unlink a device without closing it ?

Unlikely.

> If this is the wrong mailinglist, then who should I contact regarding
> these erratic semantics ?

Which API are you using?  A simple test case code would be more
helpful to demonstrate.

But, in general, sharing the same DSP device among different processes
don't sound like a good idea...


Takashi


More information about the Alsa-devel mailing list