1. A non-transitory computer readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to implement a shared, dynamic-sized, non-blocking data structure, wherein the amount of storage allocated to the data structure varies dynamically as the number of data elements thereof varies; wherein the data structure is accessible by a plurality of concurrently executing computational threads; wherein in response to a failure of one of the plurality of concurrently executing computational threads that accesses or operates on one of a plurality of data elements of the data structure, the program instructions prevent future reclamation of one or more storage blocks of the data structure; and wherein the number of storage blocks of the data structure prevented from future reclamation is bounded and is less than all of the storage blocks allocated to the data structure.