[alsa-devel] alsa-utils aplay/arecord can't be interrupted when streaming is not active

Jaroslav Kysela perex at perex.cz
Wed Apr 16 10:06:11 CEST 2014


Date 16.4.2014 09:54, jiwang wrote:
> Hi All
> 
> With latest 1.0.27.2 alsa-utils, I am facing problem to interrupt
> aplay/arecord
> when the streaming is not active (no data can be written to or read from
> cards)
> further more, if I start aplay/arecord with "-N" nonblocking option,
> then aplay/arecord can never exit, unless I do a system reset

If I/O stalls it's usually problem in the driver. You don't write any
information about your configuration - post 'aplay -v' to see more.

You may kill the process using the SIGABRT signal.. No reboot is required.

> I found if I revert the following patch
> 
> /commit 1d0042d7e948815f8015c62bc53143eed3b83206//
> //Author: Jaroslav Kysela <perex at perex.cz>//
> //Date:   Mon Apr 8 13:30:54 2013 +0200//
> //
> //    aplay/arecord: change the interrupt handling using snd_pcm_abort()//
> //    //
> //    It is required (exclude the fatal SIGABRT) to call snd_pcm_close()
> and//
> //    the end of work (outside of the interrupt handler). Use new
> snd_pcm_abort()//
> //    function to inform alsa-lib to not ignore EINTR and move the
> in_aborting//
> //    variable to the global scope to be checked in the i/o loops.//
> //    //
> //    Signed-off-by: Jaroslav Kysela <perex at perex.cz>//
> /
> http://git.alsa-project.org/?p=alsa-utils.git;a=commit;h=1d0042d7e948815f8015c62bc53143eed3b83206
> 
> then aplay/arecord can be interrupted correctly
> 
> Is it a defect in aplay.c or did I miss something?
> 
> Thanks,
> Jiada
> 


-- 
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list