Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the identifier-pool Reference Manual, version 0.1.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 04:52:09 2022 GMT+0.
Next: Systems, Previous: The identifier-pool Reference Manual, Up: The identifier-pool Reference Manual [Contents][Index]
A simple generational identification number allocator.
This library is able to generate increasing identifiers (integers) in such a way that previously deallocated identifiers are available to be reclaimed by the generator the next time one is allocated. Essentially, it solves the "ABA Problem": https://en.wikipedia.org/wiki/ABA_problem
It does so in a space-efficient manner, without the need for the storage of a list of deallocated identifiers. It does this by keeping deallocated identifiers around and modifying their data on deletion to build a sort of implicit linked list. That is, when an identifier is marked for deletion, the following occurs:
The packed version portion of its data is incremented.
The packed ID portion of its data is set to the integer stored in the pool's FREE-HEAD slot (FREE-HEAD can be thought of as the head of the implicit linked list). If FREE-HEAD is null, then instead, all of the bits of the ID are set. #xFFFFFF represents the "invalid" ID.
FREE-HEAD is set to the ID portion of its data.
This, in effect, constructs an implicit linked list of the next available identifiers that can be generated.
(ql:quickload :identifier-pool)
Copyright © 2019-2022 Michael Fiano mail@mfiano.net
Licensed under the MIT License.
Next: Files, Previous: Introduction, Up: The identifier-pool Reference Manual [Contents][Index]
The main system appears first, followed by any subsystem dependency.
A simple generational identification number allocator.
Michael Fiano <mail@mfiano.net>
MIT
0.1.0
Next: Packages, Previous: Systems, Up: The identifier-pool Reference Manual [Contents][Index]
Files are sorted by type and then listed depth-first from the systems components trees.
Next: identifier-pool/package.lisp, Previous: Lisp, Up: Lisp [Contents][Index]
identifier-pool (system).
Next: identifier-pool/identifier-pool.lisp, Previous: identifier-pool/identifier-pool.asd, Up: Lisp [Contents][Index]
identifier-pool (system).
Previous: identifier-pool/package.lisp, Up: Lisp [Contents][Index]
package.lisp (file).
identifier-pool (system).
Next: Definitions, Previous: Files, Up: The identifier-pool Reference Manual [Contents][Index]
Packages are listed by definition order.
common-lisp.
Next: Indexes, Previous: Packages, Up: The identifier-pool Reference Manual [Contents][Index]
Definitions are sorted by export status, category, package, and then by lexicographic order.
Next: Internals, Previous: Definitions, Up: Definitions [Contents][Index]
Previous: Public Interface, Up: Public Interface [Contents][Index]
Previous: Public Interface, Up: Definitions [Contents][Index]
Next: Ordinary functions, Previous: Internals, Up: Internals [Contents][Index]
Next: Structures, Previous: Constants, Up: Internals [Contents][Index]
Previous: Ordinary functions, Up: Internals [Contents][Index]
Previous: Definitions, Up: The identifier-pool Reference Manual [Contents][Index]
Jump to: | %
(
A C F G I M P S U V |
---|
Jump to: | %
(
A C F G I M P S U V |
---|
Next: Data types, Previous: Functions, Up: Indexes [Contents][Index]
Jump to: | +
C F S |
---|
Jump to: | +
C F S |
---|
Jump to: | F I P S |
---|
Jump to: | F I P S |
---|