---
title: WG-async triage meeting 2024-08-08
tags: ["WG-async", "triage-meeting", "minutes"]
date: 2024-08-08
discussion: https://rust-lang.zulipchat.com/#narrow/stream/187312-wg-async/topic/Meeting.202024-08-08
url: https://hackmd.io/qbe18CS-SWmsJHzdZWWzhQ
---
# WG-async meeting agenda
- Meeting date: 2024-08-08
## Attendance
- People: TC, eholk, Yosh, tmandry
## Scheduled meetings
None.
Update these [here](https://github.com/orgs/rust-lang/projects/40/views/1).
## Proposed meetings
None.
Update these [here](https://github.com/orgs/rust-lang/projects/40/views/1).
## Announcements or custom items
(Meeting attendees, feel free to add items here!)
## Untriaged issues
### "Weirdness around async function with error "implementation of FnOnce is not general enough"" rust#114177
**Link:** https://github.com/rust-lang/rust/issues/114177
errs note: el classico `Send` bound problem, not fixable
Tracking issue:
https://github.com/rust-lang/rust/issues/110338
### "rustc fails to prove `Send`ness for an `async` block where a `!Send` value is dropped before an `.await` point" rust#128095
**Link:** https://github.com/rust-lang/rust/issues/128095
errs note: i'm planning on rebasing and FCPing the PR i linked at the bottom of that
### "Add LocalWaker support" libs-team#191
**Link:** https://github.com/rust-lang/libs-team/issues/191
### "Context reactor hook" libs-team#347
**Link:** https://github.com/rust-lang/libs-team/issues/347
## Nominated RFCs, PRs, and issues
### "Add a method for constructing a `Waker` from a `Fn()`" libs-team#415
**Link:** https://github.com/rust-lang/libs-team/issues/415
```rust
use std::{sync::Arc, task::Wake};
struct S;
impl Wake for S {
fn wake(self: Arc<Self>) {
todo!()
}
}
let foo = S;
```
Anonymous trait impl:
```rust
let foo = impl Wake {
fn wake(self: Arc<Self>) {
todo!()
}
};
```
`wake_fn`:
```rust
let foo = alloc::task::wake_fn(|| todo!());
```
No captures:
```rust
let foo = Waker::from_fn(|| todo!());
```
After discussion, we agreed that `wake_fn` is well motivated, and we were separately open to a `core::task::Waker::from_fn` that didn't use `Arc`. Summary is here:
https://github.com/rust-lang/libs-team/issues/415#issuecomment-2276596757
### "Generic Futures" rfcs#3434
**Link:** https://github.com/rust-lang/rfcs/pull/3434
### Misc
It'd be nice if the `Into*` traits around futures could work like this:
```rust
trait IntoFuture {
type Output;
async fn into_future(self) -> Self::Output;
}
// or similar for IntoAsyncGen
trait IntoAsyncGen {
type Item;
async gen fn into_async_gen(self) -> Self::Item;
}
```
The trait as it exists today:
```rust
pub trait IntoFuture {
type Output;
type IntoFuture: Future<Output = Self::Output>;
fn into_future(self) -> Self::IntoFuture;
}
```
Inferred associated types handle this without modifying the trait:
```rust
impl T for IntoFuture {
type Output = ();
async fn into_future(self) -> Self::Output { .. }
fn into_future(self) -> impl Future<Output = Self::Output> { .. }
}
```
What you can write today with ATPIT:
```rust
impl T for IntoFuture {
type Output = ();
type IntoFuture = impl Future<Output = Self::Output>;
async fn into_future(self) -> Self::Output { .. }
fn into_future(self) -> Self::IntoFuture { .. }
}
```
### "Tracking Issue for `waker_getters`" rust#96992
**Link:** https://github.com/rust-lang/rust/issues/96992
### "Tracking Issue for `task::Waker::noop`" rust#98286
**Link:** https://github.com/rust-lang/rust/issues/98286
### "Rename `AsyncIterator` back to `Stream`, introduce an AFIT-based `AsyncIterator` trait" rust#119550
**Link:** https://github.com/rust-lang/rust/pull/119550
### "Clarification needed on what happens when `Future::poll` wakes an old waker" rust#119698
**Link:** https://github.com/rust-lang/rust/issues/119698
### "Context reactor hook" libs-team#347
**Link:** https://github.com/rust-lang/libs-team/issues/347
## WG RFCs, PRs, and issues nominated for T-lang/T-types
None.
## Pending PRs on the WG-async repo
None.
## `S-waiting-on-team`
### "Initial support for auto traits with default bounds" rust#120706
**Link:** https://github.com/rust-lang/rust/pull/120706
### "Rename `AsyncIterator` back to `Stream`, introduce an AFIT-based `AsyncIterator` trait" rust#119550
**Link:** https://github.com/rust-lang/rust/pull/119550
## Proposed FCPs
**Check your boxes!**
None.
## Active FCPs
### "Tracking Issue for `Ready::into_inner()`" rust#101196
**Link:** https://github.com/rust-lang/rust/issues/101196
## P-critical issues
None.
## WG-async work project board
https://github.com/orgs/rust-lang/projects/29/views1/d