From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,18385551e0d37b37 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-11-04 05:51:03 PST Path: bga.com!news.sprintlink.net!howland.reston.ans.net!agate!blanket.mitre.org!linus.mitre.org!linus!mbunix!eachus From: eachus@spectre.mitre.org (Robert I. Eachus) Newsgroups: comp.lang.ada Subject: Re: Ada replacements for DOS I/O Date: 3 Nov 94 09:24:26 Organization: The Mitre Corp., Bedford, MA. Message-ID: References: <44279.cwarwick@fox.nstn.ns.ca> <38qq4u$as2@theopolis.orl.mmc.com> <392r15$gl3@schonberg.cs.nyu.edu> NNTP-Posting-Host: spectre.mitre.org In-reply-to: dewar@cs.nyu.edu's message of 31 Oct 1994 08:21:41 -0500 Date: 1994-11-03T09:24:26+00:00 List-Id: In article <392r15$gl3@schonberg.cs.nyu.edu> dewar@cs.nyu.edu (Robert Dewar) writes: > Of course simultaneous text_io from separate tasks to the same file (e.g. > standard output) is pretty hard to define anyway (at what level does the > output get interleaved - lines, text_io calls, characters, pixels?) Characters, Robert, characters. ;-) More seriously, chapter 14 is written to require, at worst, that gets and puts of individual characters be treated as indivisible actions. Any reasonable tasking aware version of TEXT_IO can and should lock at a higher level, but it is almost impossible to treat Text_IO calls as atomic. (For example, a read of a number can require reading thousands of bytes from the external file.) When I've written tasking aware versions of Text_IO (usually by revising the vendor supplied I/O routines and calling the result Nice_IO or Tasking_IO), the locking granularity was either a line of text or a text_io call, whichever was smaller. -- Robert I. Eachus with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...