---
# System prepended metadata

title: Meeting 2023-02-01
tags: [meeting notes]

---

# Meeting 2023-02-01

* [ ] Don't forget the meeting with Asahi Lina tomorrow ;-)

https://github.com/Rust-for-Linux/linux/pull/884

* [ ] sleep in `async`

```rust=
let e = Executor::try_new_owned(...)?

e.spawn(async || {         // spawns a task, let's say `t1`, and `t1` holds one refereneces of `e`
    Delay(10000).await;    // wait for 10000 seconds, this will add a timer which holds one reference to `t1`
});

drop(e); // stop `e`, clean up the queue, revoke futures.

// reference count fo `t1` is 1 (held by timer closure),  reference count of `e` is 1 (held by `t1`).

<10000 seconds later, timer fired>

// in timer handler

waker.wake(); // `waker` is `t1` and `waker` is consumed.

// Task::drop() -> Executor::drop() -> BoxQueue::drop() -> destroy_workqueue() -> sleep!!!

// sleep in timer handler

```