Sorry, but it can pull; just the externals - use PARSE EXTERNAL instead of 
PARSE PULL

Regards, 
Richard Schuh 

 

> -----Original Message-----
> From: The IBM z/VM Operating System 
> [mailto:ib...@listserv.uark.edu] On Behalf Of Alan Altmark
> Sent: Friday, July 10, 2009 10:53 AM
> To: IBMVM@LISTSERV.UARK.EDU
> Subject: Re: Newbie question
> 
> On Friday, 07/10/2009 at 12:56 EDT, Sterling James 
> <ssja...@dstsystems.com> wrote:
> > If I have a quest, usera, running a rexx exec, REXX1, while
> disconnected, and 
> > userb (priv c) issues a "SEND USERA REXX2"; Where is the "REXX2" 
> > queued? Or  how can rexx1 pull that command so it
> will not 
> > execute when REXX1 ends? 
> 
> There are two queues in CMS:
> 1. The Program Stack
> 2. The Terminal Input Buffer
> 
> A PULL statement will read from the program stack.  When the 
> program stack is empty, PULL will read from the terminal 
> input buffer.  If the terminal input buffer is empty, then 
> PULL will read from the console (VM READ).
> 
> The QUEUED() and EXTERNALS() functions are used to determine 
> the number of items in the program stack and terminal input 
> buffer, respectively.  So to discard things typed on the 
> console or sent via SEND while your program was busy:
> 
> do queued() + externals()
>   pull .
> end
> 
> Note that PULL cannot "reach around" the program stack and go 
> directly to the terminal input buffer, which is why the 
> program must pull things off the program stack first.  This 
> technique is considered to be an unrefined display of brute 
> force.  A polite program will not arbitrarily destroy the 
> content of the program stack in case it was placed there 
> prior to invocation of this program, and will jump through 
> hoops to read and restore the program stack to its entry condition.
> 
> Alan Altmark
> z/VM Development
> IBM Endicott
> 

Reply via email to