Comments (9)
How about Async::pollable()
?
from smol.
What about removing the Async::new()
entirely and use Async::try_from()
for all T: AsRawFd?
Maybe I should open a PR with that? (I mean for the impl TryFrom<T: AsRawFd> for Async<T>
)
from smol.
stdio/out/err are actually pollable or not (just not on Windows)? I remember doing that quite a few times.
That of course depends on what your stdio streams happen to be. If they're on-disk files, they're not pollable. If they're ptys, or sockets, or pipes, they are 🙂 So it's definitely true that you cannot assume they're always pollable.
from smol.
Maybe instead of "socket", "pollable fd" would be a better term? It seems weird to call the various other kinds of pollable fds on Linux "sockets" :)
On Windows,
Async::new()
only acceptsT: AsRawSocket
so you really can only use sockets with it - the situation there is perfect.
This also seems like a good reason to rename, as one might want to add an Async::handle()
in the future that works on HANDLE
s, for example.
from smol.
@shekohex Interesting, haven't thought of that! But I worry people would do Async::try_from(file)?
@sdroege I like that - so we can explain Async
is only for pollable things, which files and stdio aren't.
from smol.
@sdroege I like that - so we can explain
Async
is only for pollable things, which files and stdio aren't.
stdio/out/err are actually pollable or not (just not on Windows)? I remember doing that quite a few times.
from smol.
@stjepang As long as the AsRawFd
bound is kept, you just can't stop people writing Async::try_from(file)?
. However, you shouldn't because the method's name already suggests a known idiomatic approach most rust developers are familiar with.
from smol.
How about
Async::pollable()
?
Perhaps Async::polling(smth)
? Though that sounds a bit Swift-ish.
from smol.
I decided to not change this :) It seems that the original issue hasn't come up again since the initial release of smol. That may be partly because more people have become familiarized with Async
vs Unblock
distinction, and partly because there are now higher-level crates like async-net
and async-fs
.
from smol.
Related Issues (20)
- async-net add TcpSocket? HOT 1
- It's not clear how to use Executor instead of smol::spawn HOT 1
- smol violates API guidelines' "C-STABLE" HOT 2
- TLS example should use `async_tls` instead of `async-native-tls`
- RUSTSEC-2021-0060: `aes-soft` has been merged into the `aes` crate HOT 1
- RUSTSEC-2021-0059: `aesni` has been merged into the `aes` crate HOT 1
- RUSTSEC-2021-0064: `cpuid-bool` has been renamed to `cpufeatures` HOT 1
- RUSTSEC-2020-0056: stdweb is unmaintained HOT 1
- RUSTSEC-2018-0017: `tempdir` crate has been deprecated; use `tempfile` instead HOT 1
- smol::spawn: BrokenPipe io::copy failed
- Panic: "There is no reactor running, must be called from the context of a Tokio 1.x runtime" HOT 3
- Give smol-rs a logo/mascot HOT 3
- Tracking issue for potentially useful features in future Rust versions HOT 11
- Tracking issue for smol v2.0.0 HOT 9
- Failing to check for closed socket causes future to spin, hogging executor thread HOT 2
- Should we expose event-listener in this crate? HOT 3
- concurrent futures combinators with smol HOT 1
- Figure out a way to race multiple futures in smol HOT 5
- Destructors aren't run for detached tasks HOT 5
- File write just before exit seems racey HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smol.