On Mon, 3 Feb 2003, Sebastian Kapfer wrote: > The alsa-lib doesn't set the close-on-exec flag on its PCM device FD's. > The consequence is that processes spawned by alsa-lib clients inherit an > open file handle to the PCM device and thereby block it. > > For example, mplayer can disable and re-launch the xscreensaver daemon. > In the alsa-enabled version of mplayer, the xscreensaver process > inherits a pcm handle, although xss can't make use of it. This > effectively forces me to restart xss manually after each mplayer > session. > > Suggested fix: > > --- src/pcm/pcm_hw.c.orig 2002-10-12 13:49:54.000000000 +0200 > +++ src/pcm/pcm_hw.c 2003-02-03 23:07:14.000000000 +0100 > @@ -867,6 +867,11 @@ > ret = -errno; > goto _err; > } > + if( fcntl( fd, F_SETFD, FD_CLOEXEC ) != 0 ) { > + SYSERR("fcntl FD_CLOEXEC failed"); > + ret = -errno; > + goto _err; > + } > if (ioctl(fd, SNDRV_PCM_IOCTL_PVERSION, &ver) < 0) { > SYSERR("SNDRV_PCM_IOCTL_PVERSION failed"); > ret = -errno;
Well, I and Abramo think that it's better to force application developers to clean allocated things before they'll call exec(). I believe that not only ALSA file descriptors are open after exec() in mplayer. Jaroslav ----- Jaroslav Kysela <[EMAIL PROTECTED]> Linux Kernel Sound Maintainer ALSA Project, SuSE Labs ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel