Patent ID: 8386527

Claim:
A system for providing shared buffered access to array entries of a virtual array, said virtual array comprising user-provided means for constructing a master array entry from a user-defined entry key identifier, user-provided means for destroying said master array entry and releasing any resources used, user-provided means for constructing a slave array entry from said master array entry, and user-provided means for destroying said slave array entry and releasing any resources used, system comprising a non-transitory computer-readable medium and computer software with a defined software interface, said software interface comprising: a. a shared virtual array construction means which, given said user-provided master array entry construction means, said user-provided master array entry destruction means, said user-provided slave array entry construction means, said user-provided slave array entry destruction means, array entry size, a maximum number of simultaneous master array entries to retain, and a maximum number of simultaneous slave array entries to retain as input, said shared virtual array construction means providing a shared virtual array identifier to its user; b. slave array entry access means providing read access to a slave array entry, given said shared virtual array identifier provided by said shared virtual array construction means, and a user-defined entry key identifier, said slave array entry access means providing the memory address of a slave array entry for the exclusive use of its caller; c. slave array entry release means releasing said access to said slave array entry, given said shared virtual array identifier and said memory address of said slave array entry provided by said slave array entry access means; d. release and renew means, which releases and renews access to a plurality of slave array entries, given said shared virtual array identifier, a group of said memory addresses of said slave entries, and a group of said user-defined entry key identifiers, said release and renew means effectively releasing the entire group of said slave entries, and providing access to the entire group of slave entries identified by said group of user-defined entry key identifiers, while disallowing the destruction of any existing master array entries associated to any members of said group of user-defined entry key identifiers; and e. shared virtual array destruction means, which destroys a shared virtual array, given said shared virtual array identifier.