My apologies for assuming that you had more reading comprehension than you turn 
out to have. The point of the link was that you can devise a sound protocol but 
you can't ensure that everyone in the future will follow it.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Assembler List <[email protected]> on behalf 
of Jon Perryman <[email protected]>
Sent: Sunday, August 4, 2019 4:23:21 PM
To: [email protected]
Subject: Re: Circular Queue Handling in Assembler

 Nice job Seymour hiding insults in hiperlinks. Since you brought it up, God is 
not as smart as he wants you to believe. He created the jackass. He later 
realized his mistake made it impossible for them to reproduce. Yet they still 
exist.

How does PLO solve the OP's serialization problem with a circular queue? Which 
words and concepts are you having a problem understanding?  Here is the op's 
shared storage definitions: FIRST DS A(0)LAST DS A(0)CIRCULAR_QUEUE DS 
&SIZE.CL256

Tony's WAIT / ECB solution has solved the serialization problem and worked well 
for many years. Using a chained queue with CS solves the serialization problem. 
What is the protocol you mention that makes PLO use case for the OP's problem.

Jon.

    On Saturday, August 3, 2019, 01:41:40 PM PDT, Seymour J Metz 
<[email protected]> wrote:

 How is moving 256 bytes relevant to the serialization?

If someone doesn't bother to use part of the protocol then the problem is with 
him, not with the protocol.

http://secure-web.cisco.com/1i7eBcDNSF_WK9z-tHeFovBM6ucorrSRtAwP1RNSYmwF50If_FDvl0_l2yNzCRoV4K6mQIs79re0X1snD-_13h8J-piEPAsNtawjSIOOZ5eKKdmbGRZa95zazInYja2pzBz_LtbC4obsN945gsIkDjXcSjUv2NNt3hgTIAkMl4JLegBZM2SeINf3gIwbE3PpvnjhYyrfWvwozOeWKmwt8_p5gwtMC43pM44gfF-ytvm6PwqYJRToVaK1MJHxiqgLwGq52NsPaUEJhlrr-yjpxWJ5LZN1L6rGRSnbr3LzJ-lysgMhPV3S-4Wg1lIPiqAGYBhbuHUCzJGqf01M5KKymO4zXk__hkL6ISPrM84GWjkoGzJLmlOe_u61KUQXN-suX4CExpcJ56vKUs1PU0UVs291L4ciUBGX-GpAR4sgi-e-cNGb-eArdwi5iN3wjZe5p/http%3A%2F%2Fwww.quotationspage.com%2Fquote%2F26271.html


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Assembler List <[email protected]> on behalf 
of Jon <[email protected]>
Sent: Friday, August 2, 2019 5:29 PM
To: [email protected]
Subject: Re: Circular Queue Handling in Assembler

>> How is PLO a use case for a multi-tasking circular queue?
> Because it can do a pair fo compare and swap operations as an atomic 
> operation.

Does PLO now move 256 bytes? The op needs to update a 4 byte index and 256 byte 
data area. It's been a very long time since I looked at PLO but I thought it 
was less than 64 bytes. I could easily be wrong.

>>  How do you eliminate timing issues,
> How do you eliminate timing using a supervisor assist, e.g., ENQ, latches, 
> locks?
>It's up to you to analyze the costs in your environment.

The op was worried about CS before or after (timing). Tony's product solved 
this thru multiple ECB's. Forget about cost and simplify the solution. The 
element is either on the ready queue, on the free queue or not on any queue (in 
use by a task).

>> deadly embraces
> How do you get one in the first place?

By making a false assumption. Most notably, someone might not bother to use 
WAIT, thinking that a spin loop would be quick enough.

>> spin lock hangs?
> Spin lock starvation I might believe, but no reasonable design will hang.
> Also, if you're hitting the service so heavily that spin lock timing is an 
> issue, you'd better rethink your design.

Sorry, I meant spin loop. There are several considerations when implementing a 
circular queue. It would not take much to overlook something in the design.

Jon.

Reply via email to