Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!ames!ucbcad!ucbvax!KL.SRI.COM!STEINBERGER From: STEINBERGER@KL.SRI.COM (Richard Steinberger) Newsgroups: comp.os.vms Subject: Re-entrant code Message-ID: <12296042060.20.STEINBERGER@KL.SRI.COM> Date: Mon, 20-Apr-87 11:16:21 EST Article-I.D.: KL.12296042060.20.STEINBERGER Posted: Mon Apr 20 11:16:21 1987 Date-Received: Tue, 21-Apr-87 01:12:48 EST Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 23 As I once again learned, you have to disable interrupts (e.g. with a SYS$SETAST call) before calling non-re-entrant routines if AST routines also call them. This is (obviously) to prevent the data structures in the non-re-entrant code from getting trashed. So what's the concern: is it possible to write re-entrant code on a VAX in higher level languages like FORTRAN? If so, are there guidelines written anyplace? Thanks to all who reply. -Ric Steinberger steinberger@kl.sri.com BTW: The symptom that something was wrong in my coding was as follows: The program would fail with some sort of fatal error or other. I would use the debugger to trace control flow and find that the received arguments in a subroutine that doesn't alter them were different that what they were in the calling program. Then I considered that the receiving subroutine was also called by an AST. . . .grrrr! -------