One use for a circular queue is a wrapping trace table. Normally it's a queue that's never harvested until there's an abend,
On 2019-08-01 11:56 p.m., Jon wrote: >> 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. Gary Weinhold Senior Application Architect DATAKINETICS | Data Performance & Optimization Phone:+1.613.523.5500 x216 Email: [email protected] Visit us online at www.DKL.com E-mail Notification: The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system.
