US 12,423,032 B2
Systems and methods for implementing and using a cross-process queue within a single computer
Lawrence Edmund Lewis, Durham, NC (US); Mohammadreza Nazari, Wayne, PA (US); and Amirhassan Fallah Dizche, Woburn, MA (US)
Assigned to SAS INSTITUTE INC., Cary, NC (US)
Filed by SAS Institute Inc., Cary, NC (US)
Filed on Jun. 7, 2024, as Appl. No. 18/737,740.
Application 18/737,740 is a continuation of application No. 18/737,592, filed on Jun. 7, 2024, granted, now 12,271,635.
Claims priority of provisional application 63/534,326, filed on Aug. 23, 2023.
Prior Publication US 2025/0068490 A1, Feb. 27, 2025
Int. Cl. G06F 9/54 (2006.01); G06F 3/06 (2006.01); G06F 9/48 (2006.01)
CPC G06F 3/0659 (2013.01) [G06F 3/0619 (2013.01); G06F 3/0673 (2013.01); G06F 9/4881 (2013.01); G06F 9/541 (2013.01)] 30 Claims
OG exemplary drawing
 
1. A computer-program product embodied in a non-transitory machine-readable storage medium storing computer instructions that, when executed by one or more processors, perform operations comprising:
implementing a cross-process queue within a single computer that enables a transfer of data between a first operating system process and a second operating system process, wherein:
the first operating system process is created by executing a computer program written in a first computer language, and the second operating system process is created by executing a computer program written in a second computer language;
receiving, at the cross-process queue, a data block from the first operating system process based on an execution by the first operating system process of a write operation to a memory of the cross-process queue, wherein the data block is encoded in a data structure of the first computer language;
implementing a cell synchronization data structure tracking states of a plurality of cells of index of cells of the cross-process queue, wherein the cell synchronization data structure counts cells of the plurality of cells of the index of cells to determine available cells for the write operation and the read operation;
regulating a utilization of the cross-process queue for the first or second operating system process executing the write operation and read operation based on the count of cells of the index of cells that are available for the write operation and the read operation;
converting, by an interpreting application, the data block encoded in the data structure of the first computer language to a translated data block encoded in a data structure of the second computer language;
storing, within the memory of the cross-process queue, the translated data block based on the conversion of the data block; and
enabling a read access, by the second operating system process, to the translated data block stored within the memory of the cross-process queue.