### 0.1.4 (2021-10-12) #### Features * emit a nicer panic when thread count overflows `MAX_SHARDS` (#64) ([f1ed058a](https://github.com/hawkw/sharded-slab/commit/f1ed058a3ee296eff033fc0fb88f62a8b2f83f10)) ### 0.1.3 (2021-08-02) #### Bug Fixes * set up MSRV in CI (#61) ([dfcc9080](https://github.com/hawkw/sharded-slab/commit/dfcc9080a62d08e359f298a9ffb0f275928b83e4), closes [#60](https://github.com/hawkw/sharded-slab/issues/60)) * **tests:** duplicate `hint` mod defs with loom ([0ce3fd91](https://github.com/hawkw/sharded-slab/commit/0ce3fd91feac8b4edb4f1ece6aebfc4ba4e50026)) ### 0.1.2 (2021-08-01) #### Bug Fixes * make debug assertions drop safe ([26d35a69](https://github.com/hawkw/sharded-slab/commit/26d35a695c9e5d7c62ab07cc5e66a0c6f8b6eade)) #### Features * improve panics on thread ID bit exhaustion ([9ecb8e61](https://github.com/hawkw/sharded-slab/commit/9ecb8e614f107f68b5c6ba770342ae72af1cd07b)) ## 0.1.1 (2021-1-4) #### Bug Fixes * change `loom` to an optional dependency ([9bd442b5](https://github.com/hawkw/sharded-slab/commit/9bd442b57bc56153a67d7325144ebcf303e0fe98)) ## 0.1.0 (2020-10-20) #### Bug Fixes * fix `remove` and `clear` returning true when the key is stale ([b52d38b2](https://github.com/hawkw/sharded-slab/commit/b52d38b2d2d3edc3a59d3dba6b75095bbd864266)) #### Breaking Changes * **Pool:** change `Pool::create` to return a mutable guard (#48) ([778065ea](https://github.com/hawkw/sharded-slab/commit/778065ead83523e0a9d951fbd19bb37fda3cc280), closes [#41](https://github.com/hawkw/sharded-slab/issues/41), [#16](https://github.com/hawkw/sharded-slab/issues/16)) * **Slab:** rename `Guard` to `Entry` for consistency ([425ad398](https://github.com/hawkw/sharded-slab/commit/425ad39805ee818dc6b332286006bc92c8beab38)) #### Features * add missing `Debug` impls ([71a8883f](https://github.com/hawkw/sharded-slab/commit/71a8883ff4fd861b95e81840cb5dca167657fe36)) * **Pool:** * add `Pool::create_owned` and `OwnedRefMut` ([f7774ae0](https://github.com/hawkw/sharded-slab/commit/f7774ae0c5be99340f1e7941bde62f7044f4b4d8)) * add `Arc::get_owned` and `OwnedRef` ([3e566d91](https://github.com/hawkw/sharded-slab/commit/3e566d91e1bc8cc4630a8635ad24b321ec047fe7), closes [#29](https://github.com/hawkw/sharded-slab/issues/29)) * change `Pool::create` to return a mutable guard (#48) ([778065ea](https://github.com/hawkw/sharded-slab/commit/778065ead83523e0a9d951fbd19bb37fda3cc280), closes [#41](https://github.com/hawkw/sharded-slab/issues/41), [#16](https://github.com/hawkw/sharded-slab/issues/16)) * **Slab:** * add `Arc::get_owned` and `OwnedEntry` ([53a970a2](https://github.com/hawkw/sharded-slab/commit/53a970a2298c30c1afd9578268c79ccd44afba05), closes [#29](https://github.com/hawkw/sharded-slab/issues/29)) * rename `Guard` to `Entry` for consistency ([425ad398](https://github.com/hawkw/sharded-slab/commit/425ad39805ee818dc6b332286006bc92c8beab38)) * add `slab`-style `VacantEntry` API ([6776590a](https://github.com/hawkw/sharded-slab/commit/6776590adeda7bf4a117fb233fc09cfa64d77ced), closes [#16](https://github.com/hawkw/sharded-slab/issues/16)) #### Performance * allocate shard metadata lazily (#45) ([e543a06d](https://github.com/hawkw/sharded-slab/commit/e543a06d7474b3ff92df2cdb4a4571032135ff8d)) ### 0.0.9 (2020-04-03) #### Features * **Config:** validate concurrent refs ([9b32af58](9b32af58), closes [#21](21)) * **Pool:** * add `fmt::Debug` impl for `Pool` ([ffa5c7a0](ffa5c7a0)) * add `Default` impl for `Pool` ([d2399365](d2399365)) * add a sharded object pool for reusing heap allocations (#19) ([89734508](89734508), closes [#2](2), [#15](15)) * **Slab::take:** add exponential backoff when spinning ([6b743a27](6b743a27)) #### Bug Fixes * incorrect wrapping when overflowing maximum ref count ([aea693f3](aea693f3), closes [#22](22)) ### 0.0.8 (2020-01-31) #### Bug Fixes * `remove` not adding slots to free lists ([dfdd7aee](dfdd7aee)) ### 0.0.7 (2019-12-06) #### Bug Fixes * **Config:** compensate for 0 being a valid TID ([b601f5d9](b601f5d9)) * **DefaultConfig:** * const overflow on 32-bit ([74d42dd1](74d42dd1), closes [#10](10)) * wasted bit patterns on 64-bit ([8cf33f66](8cf33f66)) ## 0.0.6 (2019-11-08) #### Features * **Guard:** expose `key` method #8 ([748bf39b](748bf39b)) ## 0.0.5 (2019-10-31) #### Performance * consolidate per-slot state into one AtomicUsize (#6) ([f1146d33](f1146d33)) #### Features * add Default impl for Slab ([61bb3316](61bb3316)) ## 0.0.4 (2019-21-30) #### Features * prevent items from being removed while concurrently accessed ([872c81d1](872c81d1)) * added `Slab::remove` method that marks an item to be removed when the last thread accessing it finishes ([872c81d1](872c81d1)) #### Bug Fixes * nicer handling of races in remove ([475d9a06](475d9a06)) #### Breaking Changes * renamed `Slab::remove` to `Slab::take` ([872c81d1](872c81d1)) * `Slab::get` now returns a `Guard` type ([872c81d1](872c81d1)) ## 0.0.3 (2019-07-30) #### Bug Fixes * split local/remote to fix false sharing & potential races ([69f95fb0](69f95fb0)) * set next pointer _before_ head ([cc7a0bf1](cc7a0bf1)) #### Breaking Changes * removed potentially racy `Slab::len` and `Slab::capacity` methods ([27af7d6c](27af7d6c)) ## 0.0.2 (2019-03-30) #### Bug Fixes * fix compilation failure in release mode ([617031da](617031da)) ## 0.0.1 (2019-02-30) - Initial release