[Info-vax] Use of logical names other than I/O redirection
David Jones
osuvman50 at gmail.com
Wed Sep 14 19:37:26 EDT 2022
On Wednesday, September 14, 2022 at 5:32:40 PM UTC-4, Jonathan wrote:
> ! The reason for the separate queue entry and buffer logicals:
> ! 1) The upper limit on a logical value is 255 bytes.
> ! 2) Buffers need to be larger than 255 bytes. The required
> ! larger buffers are implemented as logical arrays (search lists.)
> ! 3) Creating a logical array is not an atomic operation. A reader
> ! may see a partial array.
As far as I can tell from the ISD, replacing a logical name is an
atomic operation. A single LNMB is created with all the LNMX
blocks for the equivalence names embedded within it. Then
IPL is raised and the block is inserted in the table, possibly
deleting an existing block.
Usually the trouble you have is reading the name since you don't
know the max index ahead of time, creating a race condition
from multiple $TRNLNM calls.
More information about the Info-vax
mailing list