True. My comment was specifically about Ben's example which had the FREE being 
done in TS state.

Even if the scanner and updater are in TS state, the scanner cannot use the 
pointer after its TS state ends due to it becoming invalid afterwards (worse 
case, point to something else entirely overlaying data). I.e. both scanner and 
updater need to "mess with" the pointer while in they are in the TS state. And 
I'm assuming that only the updater code ever does the FREE on the pointer and 
that it updates the structure so that the pointer can no longer be acquired 
after the updater exits the TS state.

This is one of the reasons that I like "smart pointers" or "indirect pointers". 
And also why I like "tokens" instead of pointers, with said tokens being 
"opaque" so that only an API can actually "do something" with the information 
associated with the token. Such as accessing some data field by passing the 
token and a pointer to the sending (write) or receiving (read) area along with 
a "field name" specifying the field to modify/read. For numeric fields, perhaps 
an arithmetic operation and value to modify some "field name". E.g. 
add_to(field_name,5,token) where field_name is either a character string, or a 
number associated with a specific field in the structure.

I do like OOP with the concept of "send a message to an object". With all 
variables being updated via "get" and "set" methods. Of course, I'm now getting 
a bit beyond what HLASM directly supports.

--
John McKown
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

9151 Boulevard 26 * N. Richland Hills * TX 76010
(817) 255-3225 phone *
john.mck...@healthmarkets.com * www.HealthMarkets.com

Confidentiality Notice: This e-mail message may contain confidential or 
proprietary information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. 
HealthMarkets(r) is the brand name for products underwritten and issued by the 
insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance 
Company(r), Mid-West National Life Insurance Company of TennesseeSM and The 
MEGA Life and Health Insurance Company.SM


> -----Original Message-----
> From: IBM Mainframe Assembler List [mailto:ASSEMBLER-
> l...@listserv.uga.edu] On Behalf Of Tom Marchant
> Sent: Wednesday, September 19, 2012 10:58 AM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Re: The Transaction state (correction)
>
> On Wed, 19 Sep 2012 09:11:40 -0500, McKown, John wrote:
>
> >I don't see how Routine B can free block X. Routine B
> >cannot do a FREEMAIN or a STORAGE RELEASE as these
> >invoke "Restricted" instructions (SVC or PC).
>
> No, but it can unlink the block and a FREEMAIN can be
> issued after the transaction completes.
>
> --
> Tom Marchant

Reply via email to