Commit Graph

61 Commits

Author SHA1 Message Date
John Nunley db5857b0b7 v5.3.0
Signed-off-by: John Nunley <dev@notgull.net>
2024-04-05 08:40:07 -07:00
Jacob Rothstein f402b7e24c feat: Add a loom implementation for event-listener 2024-03-30 12:00:55 -07:00
John Nunley 8f11a87281
v5.2.0
Signed-off-by: John Nunley <dev@notgull.net>
2024-02-28 21:15:47 -08:00
John Nunley 3a49a00639 v5.1.0
Signed-off-by: John Nunley <dev@notgull.net>
2024-02-17 21:37:31 -08:00
John Nunley 4c3568010a
v5.0.0
Signed-off-by: John Nunley <dev@notgull.net>
2024-02-04 19:23:00 -08:00
John Nunley e0fefc28b1 ex: Remove unsafe code from mutex example
This brings in the try-lock dependency.

Signed-off-by: John Nunley <dev@notgull.net>
2024-02-03 09:49:22 -08:00
Taiki Endo b1d437ae83 Release 4.0.3 2024-01-07 03:03:27 +09:00
Taiki Endo aade0393e8 Relax MSRV to 1.60
https://github.com/crossbeam-rs/crossbeam/pull/1056
2024-01-07 02:52:24 +09:00
dependabot[bot] 08c7e163a0
Update criterion requirement from 0.4.0 to 0.5.1 (#62)
Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version.
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.4.0...0.5.1)

---
updated-dependencies:
- dependency-name: criterion
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-07 01:39:35 +09:00
John Nunley 9e986e614a
v4.0.2
Signed-off-by: John Nunley <dev@notgull.net>
2024-01-01 12:13:55 -08:00
John Nunley ea0f6016ea
v4.0.1
Signed-off-by: John Nunley <dev@notgull.net>
2023-12-19 08:40:55 -08:00
John Nunley cc33cc5467
Bump MSRV to 1.61 (#102)
This commit also adds portable-atomic tests for MIRI.

Signed-off-by: John Nunley <dev@notgull.net>
2023-12-16 12:44:52 -08:00
John Nunley 531c106f0e
v4.0.0
Signed-off-by: John Nunley <dev@notgull.net>
2023-11-19 09:38:08 -08:00
John Nunley e6ec597886
v3.1.0
Signed-off-by: John Nunley <dev@notgull.net>
2023-11-12 16:14:53 -08:00
dependabot[bot] c42dc40785 Update futures-lite requirement from 1.12.0 to 2.0.0
Updates the requirements on [futures-lite](https://github.com/smol-rs/futures-lite) to permit the latest version.
- [Release notes](https://github.com/smol-rs/futures-lite/releases)
- [Changelog](https://github.com/smol-rs/futures-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/smol-rs/futures-lite/compare/v1.12.0...v2.0.0)

---
updated-dependencies:
- dependency-name: futures-lite
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-31 02:17:33 +09:00
John Nunley ca654755ac
v3.0.1
Signed-off-by: John Nunley <dev@notgull.net>
2023-10-28 18:57:22 -07:00
Taiki Endo ccd2dfe873
Migrate to Rust 2021 (#85) 2023-10-13 10:36:17 +09:00
John Nunley d2ed2cdbf2
v3.0.0
Signed-off-by: John Nunley <dev@notgull.net>
2023-09-10 11:45:06 -07:00
John Nunley cbbe9aafba Move event-listener-strategy to its own repository
https://github.com/smol-rs/event-listener-strategy

Signed-off-by: John Nunley <dev@notgull.net>
2023-09-04 08:40:30 -07:00
John Nunley c278371cfb
feat: Add explicit web support
This commit adds WASM compilation support to this crate. The main thing
is that the wait() family of APIs are removed in WASM mode, as blocking
is not allowed in WASM.

In addition, tests are added to CI to support WASM.

Signed-off-by: John Nunley <dev@notgull.net>
2023-08-26 12:53:39 -07:00
John Nunley e408ccda10
bugfix: Tracking down a deadlock in async-channel
There was a deadlock where notifications would not get delivered for
listeners that were stuck in the fallback queue. There is an
optimization where the notification count is checked to see if the
notifications delivered by the user would make any impact on the
listener chain; if it wouldn't, then it isn't done at all. For no_std,
I've removed this optimization, as I doubt that it can be done
consistently due to the nature of the fallback queue.

During testing I also uncovered problems with the current implementation
of the fallback queue itself. I've replaced it with concurrent-queue for
now, as I doubt that a fully functioning queue wouldn't be trivial
enough to justify inlining it into event-listener itself. Unfortunately
it adds three additional dependencies to the tree of event-listener.

With this change, the async-channel tests pass consistently.

Signed-off-by: John Nunley <dev@notgull.net>
2023-08-19 08:36:34 -07:00
Taiki Endo 7ce2634cb5
bugfix: Use inline assembly in full_fence
Bumps the MSRV to 1.59
2023-08-13 14:31:59 -07:00
Taiki Endo 0ea464102e
m: Remove most of Pin API related unsafe code
- Use Option::as_pin_mut/Pin::set
- Use pin-project-lite
2023-08-09 12:27:09 -07:00
jtnunley 723c3282bb Fix various CI errors
Fixes the following issues:

- Failed to build on MSRV due to Unpin bound
- Failed to build on no_std, as I didn't import Box
- Failed to build on portable-atomic, as Arc didn't implement Unpin
2023-04-04 09:44:23 -07:00
John Nunley e909945dcb
Add a portable-atomic feature (#53) 2023-04-02 21:36:44 -07:00
jtnunley 20c69a16b5 Add a libstd implementation of the inner list
This implementation is around 20% faster than the no_std one, according
to benchmarks. Therefore, we should use it where we can.
2023-03-31 13:24:20 -07:00
jtnunley 5c83b86b90 Remove the `crossbeam-utils` dependency
Everything from that crate can either be inlined or ignored.

I also fix a bug with the list implementation as well.
2023-03-31 11:24:37 -07:00
jtnunley 1188962f0c Remove the `slab` dependency
Ideally, we should have as few dependencies as possible. This change
inlines most of the logic from `slab` that we used into the
`ListenerSlab` struct.
2023-03-31 11:18:57 -07:00
jtnunley 9e3217767d Move inner data to lib.rs 2023-03-30 09:14:22 -07:00
John Nunley 52cb4bfd1a
feat: Add the event-listener-strategy crate (#49) 2023-03-15 08:48:40 -07:00
John Nunley 0235e55a0f
Replace the linked list with a safer and less allocation-heavy alternative (#38)
* Use slab to avoid unsafe code

* Move send+sync impls down to Mutex

* Code review

* Unwrap the key earlier

* Reduce the scope of one of the unsafe blocks.
2022-11-21 08:42:27 -08:00
John Nunley 64965711e1
Bump criterion to 0.4.0 (#35) 2022-11-12 08:14:57 -08:00
John Nunley 16b3d599fc
Implement an algorithm to make this crate no_std, take 3 (#34) 2022-11-11 07:53:43 -08:00
John Nunley 5c1ae634fb
Add basic benchmarks (#31) 2022-09-09 07:30:51 -07:00
John Nunley c36d7d5ca8
Bump rust-version to 1.39 (#29) 2022-08-31 20:54:19 -07:00
John Nunley a01518f41c
Use the parking crate instead of threading APIs (#27) 2022-08-24 06:39:27 -07:00
Taiki Endo a38fcb4955 Release 2.5.3 2022-07-27 11:26:40 +09:00
Taiki Endo c73ad619f6 Release 2.5.2 2022-01-22 16:38:14 +09:00
Taiki Endo c2be9b7511 Create GitHub release automatically 2022-01-08 19:28:55 +09:00
Taiki Endo 153fd3d871 Clean up CI config 2022-01-08 19:28:02 +09:00
Taiki Endo 4dcf727262 Remove readme field from Cargo.toml 2021-02-14 19:44:16 +09:00
Taiki Endo 5cdd66c265 Update URLs 2020-12-26 23:47:13 +09:00
Stjepan Glavina f28e3c6010 Bump to v2.5.1 2020-09-22 10:17:13 +02:00
Stjepan Glavina 95f3eae73e Bump to v2.5.0 2020-09-22 09:00:11 +02:00
Stjepan Glavina 9ce9fe3527 Bump to v2.4.0g 2020-08-20 17:56:45 +00:00
Stjepan Glavina fe9ec7e60e Bump to v2.3.3 2020-08-07 18:59:33 +02:00
Stjepan Glavina a7beb7c9e0 Bump to v2.3.2 2020-08-05 18:59:58 +02:00
Stjepan Glavina 7658a8dcee Bump to v2.3.1 2020-08-05 17:06:14 +02:00
Stjepan Glavina a7506f2fe5 Bump to v2.3.0 2020-07-31 14:33:39 +02:00
Stjepan Glavina 3a50b9a3f3 Bump to v2.2.1 2020-07-24 16:28:08 +02:00