> 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.
> 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. > deadly embraces How do you get one in the first place? > 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. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Assembler List <[email protected]> on behalf of Jon <[email protected]> Sent: Thursday, August 1, 2019 11:56 PM To: [email protected] Subject: Re: Circular Queue Handling in Assembler >Well, the performance isn't good but this looks like a use case for PLO. How is PLO a use case for a multi-tasking circular queue? Or maybe it's actually a free storage pool. Either way, how do you force the random activity into sequential activity? How do you eliminate timing issues, deadly embraces and spin lock hangs? Let's make this simple by ignoring the circular wrapping and all the other stuff mentioned. Pauls request boils down to: startindx dc h'0' endindx dc h'0' queue dc 200CL256' ' If this is a queue as mentioned, how does the receiving task wait for index=10 because it's taking longer than index=11? Remember that queueing requires prep work for the queue data. If it's a free storage pool, do you have 30 tasks in a spin loop waiting to terminate because the first task is still running? Or do you have ECB's? Or maybe you have a table of the entries that have been freed creating more timing issues. The only time a circular queue works is when you have 1 sender and 1 receiver. In this case, CS and PLO are not needed. The sender modifies one index and receiver modifies the other index. No timing issue. Unless I left out a scenario, using a circular queue will be far more complicated than a chained queue. Jon.
