comp.lang.ada
 help / color / mirror / Atom feed
From: robert_dewar@my-dejanews.com
Subject: Re: Stream venting (long)
Date: 1998/12/29
Date: 1998-12-29T00:00:00+00:00	[thread overview]
Message-ID: <769g3r$moq$1@nnrp1.dejanews.com> (raw)
In-Reply-To: 768sng$6r9$1@nnrp1.dejanews.com

In article <768sng$6r9$1@nnrp1.dejanews.com>,
  dennison@telepath.com wrote:
>   1. Stream 'Writes and 'Reads are inherently task
>      unsafe. Possible solution 1a: You can of course try
>      to implement your stream in a
>      task safe manner. But as a stream implementor all
>      you will see is a series of
>      Write calls. A single 'Write from the client will
>      cause an indeterminate number of these. There's no
>      way to tell if a Write or Read call is the first
>      or last in a series. If you need to make the enitre
>      composite type's 'Write or 'Read atomic, you're SOL.

I find this complaint bizarre, I must not understand it
properly.

First, the idea of different tasks writing asynchronously
to a common stream seems an entirely bizarre program
organization.

Second, if you really *do* want such an organization, it
seems quite easy to program stream functions so that they
are properly atomic. I see no difficulty in doing this.
You just need a single lock, with a test that avoids
messing with it if it is already set.


-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




  reply	other threads:[~1998-12-29  0:00 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-12-28  0:00 Stream venting (long) dennison
1998-12-29  0:00 ` robert_dewar [this message]
1998-12-29  0:00   ` dennison
1998-12-29  0:00     ` robert_dewar
1998-12-30  0:00       ` dennison
1998-12-30  0:00         ` robert_dewar
1998-12-30  0:00           ` dennison
1998-12-31  0:00             ` robert_dewar
1998-12-31  0:00               ` LeakyStain
1998-12-31  0:00                 ` dewar
1998-12-31  0:00                   ` dennison
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox