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