From: Takashi Iwai <tiwai@suse.de>
To: tomasz motylewski <T.Motylewski@bfad.de>
Cc: Clemens Ladisch <clemens@ladisch.de>,
Anders Torger <torger@ludd.luth.se>,
Abramo Bagnara <abramo.bagnara@libero.it>,
alsa-devel@lists.sourceforge.net
Subject: Re: Why do I get broken pipe on write to a pcm in statePREPARED?
Date: Tue, 17 Sep 2002 14:52:43 +0200 [thread overview]
Message-ID: <s5helbssrqc.wl@alsa2.suse.de> (raw)
In-Reply-To: <Pine.LNX.4.21.0209171341410.2859-100000@mailserver.intern.bfad.de>
At Tue, 17 Sep 2002 13:55:10 +0200 (CEST),
tomasz motylewski wrote:
>
> On Tue, 17 Sep 2002, Takashi Iwai wrote:
>
> >
> > but are you sure that this feature is really implemented?
> > on my system, write() to an FIFO which is not opened for read doesn't
> > fail, for example,
> > % mkfifo /tmp/foo
> > % cat /dev/random > /tmp/foo
> > and cat is blocked, not failed.
>
> No, in this case open() blocks. cat is even not started, because the shell
> waits for open().
ah, ok. thanks for clarification.
> If you open /tmp/foo for reading, then open() suceeds, cat starts and may
> write. If you close the other end, the next write() from cat will return -1.
yes. clearly.
> P.S. ALSA has more possible states of fd than pipes which may be just
> open/closed by the other side, and eventually full. This makes direct
> comparision difficult.
i feel like that, too.
but comparing the behavior gives us better understanding, at least.
so let's try a bit yet more.
if we regard the prepare state as "not ready", then write() should
return EPIPE. this is the current implementation.
but at the same time, we can regard the perpare state as "ready for
write but waiting for trigger". again from the citation:
| The write() function shall fail if:
| (...)
| [EPIPE]
| An attempt is made to write to a pipe or FIFO that is not open for
| reading by any process, or that only has one end open.
| (...)
| A write was attempted on a socket that is shut down for writing, or is
| no longer connected.
in the latter interpretation, the pipe/fifo is opened for reading
(already configured) and obviously it's not end open. the pcm stream
is not shut down. the stream is simply "not started".
this is the case in which the opposite reader process opened fifo but
don't start reading at all yet.
i.e. we can say that the prepare state doesn't match with the case
above -- therefore write() should be blocked.
or, is this the absolutely wrong interpretation?
Takashi
-------------------------------------------------------
Sponsored by: AMD - Your access to the experts on Hammer Technology!
Open Source & Linux Developers, register now for the AMD Developer
Symposium. Code: EX8664 http://www.developwithamd.com/developerlab
next prev parent reply other threads:[~2002-09-17 12:52 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Pine.LNX.4.33.0209112103010.607-100000@pnote.perex-int.cz>
2002-09-11 19:26 ` Why do I get broken pipe on write to a pcm in state PREPARED? Anders Torger
2002-09-11 20:14 ` Paul Davis
2002-09-12 11:13 ` Takashi Iwai
2002-09-12 11:48 ` Anders Torger
2002-09-12 15:56 ` Takashi Iwai
2002-09-12 16:14 ` Anders Torger
2002-09-12 20:02 ` Tim Goetze
2002-09-13 9:41 ` Jaroslav Kysela
2002-09-13 10:43 ` Takashi Iwai
2002-09-13 11:45 ` Tim Goetze
2002-09-13 12:37 ` Takashi Iwai
2002-09-15 17:56 ` Why do I get broken pipe on write to a pcm in statePREPARED? Abramo Bagnara
2002-09-16 10:46 ` Takashi Iwai
2002-09-16 13:18 ` Tim Goetze
2002-09-16 14:31 ` Takashi Iwai
2002-09-16 19:31 ` Abramo Bagnara
2002-09-16 19:49 ` Tim Goetze
2002-09-16 20:14 ` Anders Torger
2002-09-17 8:12 ` Abramo Bagnara
2002-09-17 9:03 ` Anders Torger
2002-09-17 13:04 ` Paul Davis
2002-09-17 9:05 ` Clemens Ladisch
2002-09-17 10:09 ` Anders Torger
2002-09-17 11:09 ` Takashi Iwai
2002-09-17 11:55 ` tomasz motylewski
2002-09-17 12:52 ` Takashi Iwai [this message]
2002-09-17 13:01 ` Anders Torger
2002-09-17 14:40 ` Clemens Ladisch
2002-09-18 19:57 ` Anders Torger
2002-10-04 8:14 ` Anders Torger
2002-10-04 12:58 ` Takashi Iwai
2002-10-04 18:04 ` Abramo Bagnara
2002-10-07 10:15 ` Takashi Iwai
2002-10-07 12:07 ` Abramo Bagnara
2002-10-07 13:19 ` Anders Torger
2002-10-07 17:46 ` Abramo Bagnara
2002-10-08 9:54 ` Takashi Iwai
2002-10-07 13:57 ` Tim Goetze
2002-10-09 18:13 ` Jack O'Quin
2002-09-17 13:03 ` Paul Davis
2002-10-15 15:49 ` multiple devices/ possible bug in aplay or somewhere else? Guilhem Tardy
2002-10-15 16:14 ` Jaroslav Kysela
2002-10-15 17:05 ` Guilhem Tardy
[not found] <3D8638F6.AC6DE0C2@racine.ra.it>
2002-09-16 22:04 ` Why do I get broken pipe on write to a pcm in statePREPARED? Tim Goetze
2002-09-17 8:21 ` Abramo Bagnara
2002-09-17 9:21 ` Tim Goetze
[not found] <200209171301.g8HD1Ww01231@mother.ludd.luth.se>
2002-09-17 13:04 ` Anders Torger
[not found] <3D98769A000FAA05@ims5a.libero.it>
2002-10-05 7:45 ` Abramo Bagnara
[not found] <3D98769A00183382@ims5a.libero.it>
2002-10-08 6:06 ` Abramo Bagnara
2002-10-08 7:30 ` Clemens Ladisch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=s5helbssrqc.wl@alsa2.suse.de \
--to=tiwai@suse.de \
--cc=T.Motylewski@bfad.de \
--cc=abramo.bagnara@libero.it \
--cc=alsa-devel@lists.sourceforge.net \
--cc=clemens@ladisch.de \
--cc=torger@ludd.luth.se \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.