2
0
Fork 1
mirror of https://github.com/async-rs/async-std.git synced 2025-05-25 16:31:30 +00:00
Commit graph

60 commits

Author SHA1 Message Date
Friedel Ziegelmayer
f7319591a3
Merge pull request #866 from Keruspe/smol04 2020-09-14 14:45:03 +02:00
Marc-Antoine Perennou
e2f638496c don't init runtime threadpool unless necessary
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2020-08-31 21:43:21 +02:00
Matthieu Le brazidec (r3v2d0g)
47ce9a370c
Add peek{,from} methods to UdpSocket 2020-08-15 15:06:33 +02:00
Marc-Antoine Perennou
25e0e1abdc switch to async-io
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2020-07-24 23:02:10 +02:00
dignifiedquire
093d640ad7 fix(net): ensure the reactor and runtime are running
If this is not done, then reactor is not running, resulting in the sockets not actually connecting.

Closes #818
2020-06-18 12:11:37 +02:00
Afirez
9fa3ce3fd6 Add UdpSocket::PeerAddr #307 2020-06-14 18:45:27 +08:00
dignifiedquire
e0928463b1 fix windows traits 2020-05-02 20:27:50 +02:00
dignifiedquire
1a6d4f6a2f fix windows trait declarations for rawsocket 2020-05-02 20:27:50 +02:00
dignifiedquire
e4df1405c1 feat: add basic wasm support 2020-05-02 20:27:50 +02:00
dignifiedquire
3161a4e449 add some missing windows imports 2020-05-02 20:27:50 +02:00
dignifiedquire
1308fbdf55 switch to smol instead of an internal runtime 2020-05-02 20:27:50 +02:00
k-nasa
84e5c5f351 Merge branch 'master' into new-scheduler 2020-03-17 20:38:19 +09:00
Stjepan Glavina
1d875836a2
Implement Clone for TcpStream (#689)
* Implement Clone for TcpStream

* Update examples

* Remove accidentally added examples
2020-01-28 18:14:16 +01:00
Toralf Wittner
57974ae0b7 Use non-blocking connect for TcpStream. (#687)
* Use non-blocking connect for TcpStream.

Instead of spawning a background thread which is unaware of any timeouts
but continues to run until the TCP stack decides that the remote is not
reachable we use mio's non-blocking connect.

mio's `TcpStream::connect` returns immediately but the actual connection
is usually just in progress and we have to be sure the socket is
writeable before we can consider the connection as established.

* Add Watcher::{poll_read_ready, poll_write_ready}.

Following a suggestion of @stjepang we offer methods to check for
read/write readiness of a `Watcher` instead of the previous approach to
accept a set of `Waker`s when registering an event source. The changes
relative to master are smaller and both methods look more useful in
other contexts. Also the code is more robust w.r.t. wakeups of the
`Waker` from clones outside the `Reactor`.

I am not sure if we need to add protection mechanisms against spurious
wakeups from mio. Currently we treat the `Poll::Ready(())` of
`Watcher::poll_write_ready` as proof that the non-blocking connect has
finished, but if the event from mio was a spurious one, it might still
be ongoing.
2020-01-27 23:13:13 +01:00
noah
0a52864764 Revert "Fixes https://github.com/async-rs/async-std/issues/652"
This reverts commit a4f68066
2020-01-14 10:59:17 -06:00
noah
76993dd755 Revert "Fixes https://github.com/async-rs/async-std/issues/652"
This reverts commit a4f68066
2020-01-14 10:55:10 -06:00
noah
a4f6806605 Fixes https://github.com/async-rs/async-std/issues/652 2020-01-13 17:47:51 -06:00
Katharina Fey
081166f204
Fixing inaccurate function description in udp::recv 2019-12-27 03:06:41 +01:00
Stjepan Glavina
36d24cd0e1 New scheduler resilient to blocking 2019-12-16 13:57:27 +01:00
Toralf Wittner
c90732a805 TcpStream: Shutdown write direction in poll_close.
Fixes #599.
2019-12-12 17:37:38 +01:00
Bryant Luk
fd86effb63
Change recv_from to recv in UdpSocket::recv doc 2019-12-02 13:04:19 -06:00
Pascal Hertleif
56538ebd91 Improve verbose errors for socket addresses
Moves the point of adding error context to the net::addr module so that
we have access to the raw address input and can include it in the error
message.
2019-11-25 23:30:31 +01:00
Pascal Hertleif
aa7d1c27a4
Verbose errors: Apply suggestions
Co-Authored-By: Yoshua Wuyts <yoshuawuyts+github@gmail.com>
2019-11-25 21:18:40 +01:00
Pascal Hertleif
e01f07d72a Add context to more errors
cc #569
2019-11-21 00:27:47 +01:00
yjhmelody
76ec9c4563 update doc url 2019-11-15 14:33:34 +08:00
Stjepan Glavina
548733e5d5
Cleanup stream traits (#487)
* Cleanup stream traits

* Fix docs
2019-11-09 11:22:09 +01:00
Stjepan Glavina
3dd59d7056
Refactor the task module (#421)
* Refactor the task module

* Fix clippy warning

* Simplify task-local entries

* Reduce the amount of future wrapping

* Cleanup

* Simplify stealing
2019-11-01 02:45:33 +01:00
Wu Yu Wei
ff6a44fcd5 Use once_cell instead of lazy_static (#416)
`once_cell` provides a neat way of initializing lazy singletons without
macro. This PR use `sync::Lazy` to streamline same pattern proposed in
related rust RFC.

Resolve #406
2019-10-30 11:23:08 +00:00
Yoshua Wuyts
20abd5cebf
standardize net docs
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-10-28 00:15:13 +01:00
Taiki Endo
2abf5ca891
Deny warnings on CI (#378)
* Deny warnings on CI

* Fix some clippy warnings
2019-10-23 20:20:59 +09:00
Stjepan Glavina
ec23632f3e
Cleanup: replace cfg-if with our macros (#361)
* Cleanup: replace cfg-if with our macros

* Prefix macros with cfg_

* Remove #[macro_export] from internal macros
2019-10-17 19:17:49 +02:00
Yoshua Wuyts
b4c1c63fd2
task::blocking async closure -> FnOnce
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-10-15 16:01:24 +02:00
Stjepan Glavina
c890de2c52 Fix failing doc example 2019-10-09 14:49:31 +02:00
Stjepan Glavina
cbd458b1db Cleanup ToSocketAddrs, add more net reexports 2019-10-09 14:26:14 +02:00
Yoshua Wuyts
9ab7b1ae6e
Merge pull request #251 from async-rs/blocking-unstable
add an unstable `task::blocking` function
2019-10-09 12:32:44 +02:00
Yoshua Wuyts
647aab819f
impl feedback
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-10-08 14:55:09 +02:00
k-nasa
2460f35768 fix: Remove unnecessary Borrowed
Each implements a Copy trait
2019-10-01 18:08:24 +09:00
Stjepan Glavina
edfa2358a4 Re-export IO traits from futures 2019-09-21 14:30:52 +02:00
Stjepan Glavina
2818c7099f Suppress a lint that makes CI fail on windows 2019-09-12 23:24:20 +02:00
Stjepan Glavina
5429c2c0a3 cargo fmt 2019-09-12 18:49:09 +02:00
Stjepan Glavina
d25dae5419 Refactor the networking driver 2019-09-12 18:45:53 +02:00
bors[bot]
7c05356ef4
Merge #148
148: Make sure into_raw_fd doesn't close the file descriptor r=stjepang a=yshui

Closes #147 

Co-authored-by: Yuxuan Shui <yshuiv7@gmail.com>
Co-authored-by: yshui <yshuiv7@gmail.com>
2019-09-08 22:19:29 +00:00
yshui
8e2bf24456
Apply suggestions from code review
Co-Authored-By: Stjepan Glavina <stjepang@gmail.com>
2019-09-08 23:16:34 +01:00
Stjepan Glavina
17c95a39d7
More robust file implementation
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-07 23:17:20 +02:00
Yuxuan Shui
876059cfe0
Make sure ownership is transferred in into_raw_fd
Previously all of the into_raw_fd implementations only returns a copy of
the inner RawFd, while still holding the ownership of the file
descriptor when returning for into_raw_fd. Since `self` is dropped at
the end of into_raw_fd, the returned file descriptor will actually be
closed, render the function unuseable.

The patch makes sure that into_raw_fd actually takes the ownership of
the file descriptor all the way from the inner IoHandle. To achieve
this, I have to use an Option in IoHandle to store the I/O source. It's
not pretty, but I cannot come up with a better way.
2019-09-06 10:36:25 +01:00
Stjepan Glavina
bac74c2d7f
Reduce dependency on futures crate (#140)
* Add future::poll_fn

* Replace all uses of poll_fn with the new one

* Remove some uses of futures

* Simplify ReadDir and DirEntry

* Remove some use of futures from File

* Use futures subcrates

* Fix imports in docs

* Remove futures-util dependency

* Remove futures-executor-preview

* Refactor

* Require more features in the futures-preview crate
2019-09-05 01:22:41 +02:00
DCjanus
238a3c882b Implement an async version of ToSocketAddrs (#74)
* Implement an async version of ToSocketAddrs

* fix documentation issue

* genius hack: pretending to be `impl Future`

* replace `std::net::ToSocketAddrs` with `async-std::net::ToSocketAddrs`

* Move unit tests into the tests directory

* Stylistic changes

* Remove re-exports in async_std::net

* fix broken link

* some mirror changes

* remove unnecessary format

* migrate: `std::net::ToSocketAddrs` -> `async_std::net::ToSocketAddrs`

* fix typo(tutorial)

* remove unnecessary type bound

* lifetime for future
2019-09-04 20:09:49 +02:00
Roman Proskuryakov
374f0c9eb8 Refactor TcpStream::connect into resolving loop and TcpStream::connect_to (#119) 2019-08-28 22:09:15 +02:00
Yoshua Wuyts
63ad786768
remove async_await feature gate
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-08-21 00:29:35 -07:00
Andrew Chin
50e69dc765 Fix documention links to docs.rs 2019-08-16 21:50:02 -04:00