<feed xmlns='http://www.w3.org/2005/Atom'>
<title>embassy/embassy-sync/src/waitqueue, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/'/>
<entry>
<title>Rustfmt for edition 2024.</title>
<updated>2025-10-06T21:19:53+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2025-10-06T20:56:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=8730a013c395cf0bf4c2fa8eeb7f138288103039'/>
<id>8730a013c395cf0bf4c2fa8eeb7f138288103039</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: add more `Debug` impls to `embassy-sync`, particularly on `OnceLock`</title>
<updated>2025-08-20T05:36:49+00:00</updated>
<author>
<name>Curly</name>
<email>u007d@humanenginuity.com</email>
</author>
<published>2025-08-20T05:30:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=368738bef44dbba1a178383d878a6d9423b1ccd9'/>
<id>368738bef44dbba1a178383d878a6d9423b1ccd9</id>
<content type='text'>
All tests green
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All tests green
</pre>
</div>
</content>
</entry>
<entry>
<title>embassy-sync: Update `MultiWakerRegistration::register` docs</title>
<updated>2025-08-01T16:45:01+00:00</updated>
<author>
<name>Brezak</name>
<email>bezak.adamko@gmail.com</email>
</author>
<published>2025-08-01T16:42:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=89d52827564b7997f0900614c7b0eb67664c121a'/>
<id>89d52827564b7997f0900614c7b0eb67664c121a</id>
<content type='text'>
In 3081ecf301a54f8ed3d0f72350dd21f8ac9e1b18 `register` was changed to clear the buffer when it's full, but the docs weren't updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In 3081ecf301a54f8ed3d0f72350dd21f8ac9e1b18 `register` was changed to clear the buffer when it's full, but the docs weren't updated.
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: extend the waker documentation</title>
<updated>2025-04-26T18:11:25+00:00</updated>
<author>
<name>ckrenslehner</name>
<email>ckrenslehner@gmail.com</email>
</author>
<published>2025-04-26T18:07:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=c2173591aa77ab7aa0a1b3d921883667fb9881f4'/>
<id>c2173591aa77ab7aa0a1b3d921883667fb9881f4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Generalize AtomicWaker</title>
<updated>2024-11-22T08:21:44+00:00</updated>
<author>
<name>Dániel Buga</name>
<email>bugadani@gmail.com</email>
</author>
<published>2024-11-22T08:21:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=e05f6da2692f2b61986ef2b77789e27d68e4e74a'/>
<id>e05f6da2692f2b61986ef2b77789e27d68e4e74a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>embassy-sync: fixed some clippy warnings</title>
<updated>2024-05-21T20:59:39+00:00</updated>
<author>
<name>Oliver Rockstedt</name>
<email>info@sourcebox.de</email>
</author>
<published>2024-05-21T20:59:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=73e523ab14b69494e324ba09fec88bc5eb0b3d2d'/>
<id>73e523ab14b69494e324ba09fec88bc5eb0b3d2d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>sync: do will_wake check in MultiWakerRegistration.</title>
<updated>2023-05-26T11:17:39+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2023-05-26T11:07:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=3081ecf301a54f8ed3d0f72350dd21f8ac9e1b18'/>
<id>3081ecf301a54f8ed3d0f72350dd21f8ac9e1b18</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>executor,sync: add support for turbo-wakers.</title>
<updated>2023-03-30T15:55:55+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2023-03-30T15:55:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=80972f1e0e6b6d409cc4d86202608c22e5ee3e5a'/>
<id>80972f1e0e6b6d409cc4d86202608c22e5ee3e5a</id>
<content type='text'>
This is a `core` patch to make wakers 1 word (the task pointer) instead of 2 (task pointer + vtable). It allows having the "waker optimization" we had a while back on `WakerRegistration/AtomicWaker`, but EVERYWHERE, without patching all crates.

Advantages:
- Less memory usage.
- Faster.
- `AtomicWaker` can actually use atomics to load/store the waker, No critical section needed.
- No `dyn` call, which means `cargo-call-stack` can now see through wakes.

Disadvantages:
- You have to patch `core`...
- Breaks all executors and other things that create wakers, unless they opt in to using the new `from_ptr` API.

How to use:

- Run this shell script to patch `core`. https://gist.github.com/Dirbaio/c67da7cf318515181539122c9d32b395
- Enable `build-std`
- Enable `build-std-features = core/turbowakers`
- Enable feature `turbowakers` in `embassy-executor`, `embassy-sync`.
- Make sure you have no other crate creating wakers other than `embassy-executor`. These will panic at runtime.

Note that the patched `core` is equivalent to the unpached one when the `turbowakers` feature is not enabled, so it should be fine to leave it there.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a `core` patch to make wakers 1 word (the task pointer) instead of 2 (task pointer + vtable). It allows having the "waker optimization" we had a while back on `WakerRegistration/AtomicWaker`, but EVERYWHERE, without patching all crates.

Advantages:
- Less memory usage.
- Faster.
- `AtomicWaker` can actually use atomics to load/store the waker, No critical section needed.
- No `dyn` call, which means `cargo-call-stack` can now see through wakes.

Disadvantages:
- You have to patch `core`...
- Breaks all executors and other things that create wakers, unless they opt in to using the new `from_ptr` API.

How to use:

- Run this shell script to patch `core`. https://gist.github.com/Dirbaio/c67da7cf318515181539122c9d32b395
- Enable `build-std`
- Enable `build-std-features = core/turbowakers`
- Enable feature `turbowakers` in `embassy-executor`, `embassy-sync`.
- Make sure you have no other crate creating wakers other than `embassy-executor`. These will panic at runtime.

Note that the patched `core` is equivalent to the unpached one when the `turbowakers` feature is not enabled, so it should be fine to leave it there.
</pre>
</div>
</content>
</entry>
<entry>
<title>Derive Default for WakerRegistration</title>
<updated>2022-11-06T03:33:38+00:00</updated>
<author>
<name>Matt Johnston</name>
<email>matt@ucc.asn.au</email>
</author>
<published>2022-11-05T14:55:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=14a2d1524080593f7795fe14950a3f0ee6e2b409'/>
<id>14a2d1524080593f7795fe14950a3f0ee6e2b409</id>
<content type='text'>
This simplifies creating arrays of WakerRegistrations
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This simplifies creating arrays of WakerRegistrations
</pre>
</div>
</content>
</entry>
<entry>
<title>split `embassy-util` into `embassy-futures`, `embassy-sync`.</title>
<updated>2022-08-22T20:18:13+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2022-08-22T19:46:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=21072bee48ff6ec19b79e0d9527ad8cc34a4e9e0'/>
<id>21072bee48ff6ec19b79e0d9527ad8cc34a4e9e0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
