From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jaroslav Kysela Subject: Re: alsa-utils aplay/arecord can't be interrupted when streaming is not active Date: Wed, 16 Apr 2014 10:06:11 +0200 Message-ID: <534E39F3.4040200@perex.cz> References: <534E3736.6070100@mentor.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail1.perex.cz (mail1.perex.cz [77.48.224.245]) by alsa0.perex.cz (Postfix) with ESMTP id 046DD2617B8 for ; Wed, 16 Apr 2014 10:06:12 +0200 (CEST) In-Reply-To: <534E3736.6070100@mentor.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: jiwang Cc: ALSA development List-Id: alsa-devel@alsa-project.org 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 // > //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 // > / > 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 Linux Kernel Sound Maintainer ALSA Project; Red Hat, Inc.