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.7 required=5.0 tests=BAYES_00,INVALID_DATE, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!attcan!uunet!wuarchive!cs.utexas.edu!swrinde!ucsd!ucbvax!husc6!encore!jcallen From: jcallen@Encore.COM (Jerry Callen) Newsgroups: comp.lang.ada Subject: Re: LRM question - access types and con Summary: What about I/O? Message-ID: <12142@encore.Encore.COM> Date: 28 Jun 90 13:34:57 GMT References: <1394@software.software.org> <20600054@inmet> Reply-To: jcallen@encore.com (Jerry Callen) Organization: Encore Computer Corp, Marlboro, MA List-Id: In article <20600054@inmet> stt@inmet.inmet.com writes: >The programmer need only worry about declared variables which are shared >between tasks. An access collection is not considered an explicitly >declared variable in this sense. >The implementation must worry about all "hidden" shared data. >Therefore, an implementation must protect its run-time data structures >from simultaneous access. So what about the built-in I/O packages? Is it safe for multiple tasks to be issuing, say, Put_Line calls without worrying about synchronization? [Aside: I think I know what Tucker's response will be; he'll say that the I/O packages are just like user packages, they just happen to come with the compiler, so they are not required to be "thread-safe."] I bring this up because it has been a repeated thorn in my side over the years. I've always felt that, at the very least, the built-in I/O packages should provide some means of requesting synchronization in the face of tasking. Maybe a form string parameter? >S. Tucker Taft >Intermetrics, Inc. -- Jerry "RTS hack" Callen jcallen@encore.com