| CPC G06F 3/0611 (2013.01) [G06F 3/0656 (2013.01); G06F 3/0673 (2013.01)] | 20 Claims |

|
1. A computer hardware device comprising:
a memory buffer within a memory buffer pool, the memory buffer having input data to be processed;
a buffer pointer that references the memory buffer having the input data; and
a plurality of processing roles for processing data;
wherein the computer hardware device causes the memory buffer to be deallocated by:
determining, by an organizer processing role of the plurality of processing roles, an initial number of processing roles needed to process the input data;
generating, by the organizer processing role, a first augmented buffer pointer that comprises the buffer pointer, a buffer pointer cloning indicator, and a null role number value indicating that a total number of processing roles needed to process the input data is initially unknown;
providing cloned versions of the first augmented buffer pointer to a plurality of consumer processing roles of the plurality of processing roles including a sub-organizer processing role;
determining, by the sub-organizer processing role, an additional number of processing roles needed to process the input data;
generating, by the sub-organizer processing role, an updated role number value indicating the total number of processing roles by combining the initial number of processing roles with the additional number of processing roles;
providing, by a consumer processing role of the plurality of consumer processing roles, a deallocation request to deallocate the memory buffer after the consumer processing role utilizes the first augmented buffer pointer; and
deallocating the memory buffer based on determining that a number of received deallocation requests received from processing roles match the updated role number value indicating the total number of processing roles.
|