CPC G06F 9/50 (2013.01) [G06F 9/48 (2013.01); G06F 9/4843 (2013.01); G06F 9/4881 (2013.01); G06F 9/5005 (2013.01); G06F 2209/5011 (2013.01)] | 20 Claims |
1. A system comprising:
a processor;
a memory; and
a command manager stored in the memory and executable by the processor to:
receive a plurality of command requests, wherein each command request of the plurality of command requests is configured to initiate a corresponding command of a plurality of commands;
determine, for each command request, a corresponding thread from a plurality of threads to distribute the plurality of commands among the plurality of threads, wherein:
each thread of the plurality of threads is configured to operate in a separate context that is unaware of each other thread among the plurality of threads; and
the plurality of command requests includes a first command request for initiating a first command for a first thread selected from the plurality of threads;
assign, based on the first thread, a first command identifier from a first pool of command identifiers to the first command, wherein:
each thread from the plurality of threads has a different associated pool of command identifiers; and
the command manager assigns, to each command of the plurality of commands, a unique command identifier without synchronization across command identifier assignments for the plurality of threads; and
return, upon completion of the first command, the first command identifier to the first pool of command identifiers.
|