- index out of bounds in
get()
andget_owned()
(#88) (fdbc930f) - unique_iter: prevent panics if a slab is empty (#88) (bd599e0b, closes #73)
- Slab: invalid generation in case of custom config (#80) (ca090279)
- emit a nicer panic when thread count overflows
MAX_SHARDS
(#64) (f1ed058a)
- make debug assertions drop safe (26d35a69)
- improve panics on thread ID bit exhaustion (9ecb8e61)
- change
loom
to an optional dependency (9bd442b5)
- fix
remove
andclear
returning true when the key is stale (b52d38b2)
- Pool: change
Pool::create
to return a mutable guard (#48) (778065ea, closes #41, #16) - Slab: rename
Guard
toEntry
for consistency (425ad398)
- add missing
Debug
impls (71a8883f) - Pool:
- Slab:
- allocate shard metadata lazily (#45) (e543a06d)
- Config: validate concurrent refs (9b32af58, closes #21)
- Pool:
- Slab::take: add exponential backoff when spinning (6b743a27)
remove
not adding slots to free lists (dfdd7aee)
- Config: compensate for 0 being a valid TID (b601f5d9)
- DefaultConfig:
- Guard: expose
key
method #8 (748bf39b)
- consolidate per-slot state into one AtomicUsize (#6) (f1146d33)
- add Default impl for Slab (61bb3316)
- prevent items from being removed while concurrently accessed (872c81d1)
- added
Slab::remove
method that marks an item to be removed when the last thread accessing it finishes (872c81d1)
- nicer handling of races in remove (475d9a06)
- split local/remote to fix false sharing & potential races (69f95fb0)
- set next pointer before head (cc7a0bf1)
- removed potentially racy
Slab::len
andSlab::capacity
methods (27af7d6c)
- fix compilation failure in release mode (617031da)
- Initial release