Menu

#339 Ref. Mnl. Chap. "14.1.3 External Data Queue" inconsistent

5.0.1
open
nobody
rexxref (2)
1
2025-03-22
2025-03-22
m-stgt
No

in "ooRexx Documentation 5.0.0, Open Object Rexx Reference", chapter "14.1.3 External Data Queue" is (IMO) wrong, inconsistent or confusing (at least for me).

chap. 14.1.3, 2nd paragraph, 2nd sentence:

It is external to Rexx programs in that other Rexx programs can have access to the queue.

while chap "14.1.3.1. Unnamed Queues", penultimate sentence:

However, other processes cannot share the same unnamed queue.

So the queue may be accessed by other REXX programs but not shared. For me shared = jointly utilised, a crucial prerequisite for accessed by others.

chap. 14.1.3, last paragraph:

There are two kinds of queues in Rexx. Both kinds are accessed and processed by name.

but next chapter is "14.1.3.1 Unnamed Queues" -- so this kind is called unnamed but accessed and processed by name. Thus this can't be the distinction between the two kind of queues. BTW, how many Unnamed Queues may exist same time? I can only create named queues, can't I?

chap. 14.1.3.1, 2nd sentence:

Its name is always "QUEUE:" [...]

Nope! QUEUE: is the device name to be used in LINEIN and LINEOUT to access the currently selected queue (what is not necessarily the "unnamed queue"). The name of the "unnamed queue" is typically "SESSION" if not altered with an environment variable.

chap. 14.1.3.1, "Special considerations:", p. 623:

External programs that must communicate with a Rexx procedure through defined data queues can use the Rexx-provided queue or the queue that QUEUE: references [...]

If no other queue was selected, the device name QUEUE: references the Rexx-provided "unnamed" queue, thus the "or" is misleading me think.

Same paragraph, last line:

or IPC queues

What are "IPC queues"? This is the only spot in the Ref. Mnl. where this term is used. Since this is a documentation it should be explained. Honestly I'm nosy, may "IPC queues" offer something more adequate for my approach than External Data Queues?

To underpin my view try:

xquid = RXqueue('C', 'EXT')
curva = RXqueue('S', xquid)
srcln = whereisit() + 2
-- trace '?R'
push '1st line in' xquid
say queued() 'lines queued in' RXqueue('G') 'after "'SOURCELINE(srcln)'"'
dc = LINEOUT("QUEUE:", "string")
srcln += 2; say queued() 'lines queued in' RXqueue('G') 'after "'SOURCELINE(srcln)'"'
address '' "ECHO pipe | RXQUEUE"
srcln += 2; say queued() 'lines queued in' RXqueue('G') 'after "'SOURCELINE(srcln)'"'
queue curva
srcln += 2; say queued() 'lines queued in' RXqueue('G') 'after "'SOURCELINE(srcln)'"'
curva = RXqueue('S', curva)
say 'Q reset, selected Q now:' RXqueue('G') || ', stacked lines:' queued()
curva = RXqueue('D', xquid)
pull curva; say 'from' RXqueue('G')":" curva

whereisit: return sigl

Discussion

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.