4131 Commits

Author SHA1 Message Date
Alex Crichton
7b7b3a817b Merge pull request #131 from sfackler/patch-1
`Encode`/`Decode` -> `Codec` in docs
2016-12-19 22:28:49 -08:00
Steven Fackler
24d941d676 Encode/Decode -> Codec in docs 2016-12-19 22:19:39 -08:00
Alex Crichton
b9f7808f6e Bump to 0.1.2 2016-12-19 00:37:27 -08:00
Alex Crichton
0588204048 Merge pull request #128 from aturon/from_vec
Add From<Vec<u8>> and Clone impls to EasyBuf
2016-12-17 14:27:40 -08:00
Aaron Turon
46d68f739a Add Clone for EasyBuf 2016-12-17 14:17:52 -08:00
Aaron Turon
9bb1366f33 Add From<Vec<u8>> for EasyBuf 2016-12-17 14:16:47 -08:00
Alex Crichton
ef89def808 Touch up docs of TcpListener::accept 2016-12-16 11:15:34 -08:00
Alex Crichton
edf6a57450 Minor tweaks w/ TcpListener::accept 2016-12-16 11:13:08 -08:00
Alex Crichton
68a8f26b40 Merge pull request #106 from dpc/tcplistener-accept
Implement `TcpListener::accept()`
2016-12-16 11:10:20 -08:00
Alex Crichton
e0990e8a5a Merge pull request #126 from dwrensha/slab-capacity-one
initialize slabs with capacity of one
2016-12-16 11:07:17 -08:00
Dawid Ciężarkiewicz
1864ecc46f tcp: Express incoming in terms of accept 2016-12-16 11:07:08 -08:00
David Renshaw
7abe6db0ae initialize slabs with capacity of one 2016-12-16 13:37:59 -05:00
Dawid Ciężarkiewicz
936727fa52 Don't block in TcpListener::accept
Instead hold a pending Future of the next `TcpStream`.
2016-12-16 10:35:42 -08:00
Dawid Ciężarkiewicz
38df0d7f0f Implement TcpListener::accept() 2016-12-16 10:35:42 -08:00
Alex Crichton
f036691681 Clean up the pipe-hup test slightly 2016-12-08 16:30:18 -08:00
Andreas Rottmann
5bab8e85b9 Handle hup events as indicating read readiness
Using Linux's `epoll(7)` interface, a `EPOLLHUP` condition is
signalled for the reading end of a pipe or socket when the other end
is closed for writing. This may happen in combination with `EPOLLIN`
being signalled (if further data is available for reading), or with
`EPOLLIN`.

If `EPOLLHUP` is signalled without `EPOLLIN` it indicates an immediate
EOF condition, which will result in the next `read()` suceeding with 0
bytes read. It is thus not required to handle `EPOLLHUP` specially in
the reader, but we need to indicate readiness upon encountering it.

Looking at the `kqueue` and `windows` mio backends, they seem to be
turn a detected EOF and connection reset into `mio::Ready::hup()`
events, so it may be reasonable to speculate that this change is an
improvement for these platforms as well.

Fixes #117.
2016-12-08 17:52:40 +01:00
Andreas Rottmann
dc27c0a524 Add test for EPOLLHUP without EPOLLIN
Note that this brings in a lot of machinery just for the sake of
wrapping file descriptors as PollEvented. This should maybe be moved
into the public API of some crate.
2016-12-08 17:52:40 +01:00
Alex Crichton
3b38e518ca Bump to 0.1.1 2016-11-22 15:39:13 -08:00
Alex Crichton
7f96b7e9e4 Add some more public exports 2016-11-22 15:36:19 -08:00
Alex Crichton
b89150c464 Fixup Result-returning encode method 2016-11-22 15:22:30 -08:00
Alex Crichton
e970e9a79c Merge branch 'master' of https://github.com/colindjk/tokio-core 2016-11-22 13:07:01 -08:00
Alex Crichton
1a48b79474 Touch up examples to ensure consistency 2016-11-22 12:35:30 -08:00
Alex Crichton
9b62ade962 Touch up codes for UDP
* Move to `std::net` as it's all purely UDP related
* Rename to `UdpCodec` and `UdpFramed` to give a consistent `Udp` prefix
* Add `RecvDgram`, rename `SendDGram` to `SendDgram`
* Touch up some style here and there
2016-11-22 11:48:09 -08:00
Alex Crichton
0d10b0e05a Merge branch 'udp_frame' of https://github.com/rrichardson/tokio-core 2016-11-22 09:44:29 -08:00
Alex Crichton
56c2c31bcf Depend on futures from crates.io 2016-11-22 09:40:35 -08:00
Rick Richardson
1a6753df1f added Default Codec for Udp 2016-11-22 08:47:57 -08:00
Rick Richardson
2cb600bd19 changed CodecUdp::decode to return Self::In instead of Option<Self::In> 2016-11-22 08:29:02 -08:00
Alex Crichton
b2ac1d8f93 Merge pull request #111 from tailhook/no_split
Remove `Framed::split` because it's now in futures crate
2016-11-21 14:21:25 -06:00
Rick Richardson
b12d32ce1c made send_dgram move self, made FramedUdp::new private, other clean-ups and tweaks 2016-11-21 11:28:25 -08:00
Paul Colomiets
e27abd3841 Remove Framed::split because it's now in futures 2016-11-21 19:33:07 +02:00
kibbles
dcf994d517 Updated 'encode' return value to Result, removed parameter passing buffer 2016-11-20 21:44:23 -05:00
Rick Richardson
ab3915d47d forgot a = 2016-11-20 11:55:57 -08:00
Rick Richardson
161811de8b moved udp test to examples, optimized buffer handling 2016-11-20 11:40:43 -08:00
Rick Richardson
71d8672aab implemented moste of udp frames test 2016-11-20 09:08:03 -08:00
Alex Crichton
4994f762a9 Fix benchmark on nightly 2016-11-19 10:02:12 -08:00
Alex Crichton
1305f105cb Update travis token 2016-11-19 09:40:33 -08:00
Rick Richardson
592a99bca4 completed basic implementation of FramedUdp for streams and sink 2016-11-19 09:05:00 -08:00
Alex Crichton
0f49a69a06 Deprecate the channel module
The `futures::sync::mpsc` module should entirely supplant it.
2016-11-18 15:20:39 -08:00
Alex Crichton
bd86bab42d Merge pull request #107 from norcalli/patch-1
Grammar in README.md
2016-11-18 09:05:09 -06:00
Ashkan Kiani
bc16ad039d Grammar in README.md 2016-11-17 22:20:36 -08:00
Alex Crichton
1bc3899016 Merge pull request #104 from danburkert/master
Clean up Sink implementation on Framed
2016-11-16 22:41:24 -06:00
Dan Burkert
46dd38b7d7 Clean up Sink implementation on Framed
This commit makes a few changes to the Sink implementation on Framed:

* Backpressure is implemented for `start_send`. If the write buffer is
  over 8KiB and can't be flushed, no new items are accepted.
* 0 length writes to the upstream transport are translated into a
  `WriteZero` error, as with `io::Write::write_all`. `write_all` checks
  for and ignores `Interrupted` errors, but I do not think this is
  necessary for non-blocking writes.
* In `poll_complete`, the upstream transport is not flushed until
  *after* writing the entire write buffer.
2016-11-16 18:42:30 -08:00
Alex Crichton
89a9ab6d34 Merge pull request #102 from aturon/decoder-encoder
Reintroduce "decoder" and "encoder" for Decode and Encode, merging them into Codec
2016-11-15 10:42:34 -06:00
Aaron Turon
c353de13fc Reintroduce "decoder" and "encoder" for Decode and Encode, and merge the
traits into `Codec`

A previous commit refactored such that `Encode` and `Decode` are
implemented directly on the types being encoded or decoded. This was
thought to be less expressive but more convenient than having a separate
notion of a (stateful) encoder or decoder.

However, there are certain situations where the approach is just too
limiting: you're required to implemented `Decode` and `Encode` for types
you don't "own" and can't newtype.

This commit moves back to a setup where `Self` represents the
encoder/decoder state; it also merges the two traits into a single
`Codec` trait, since they are currently always used together.
2016-11-15 08:28:26 -08:00
Alex Crichton
21851dd25c Merge pull request #103 from bheesham/failing-tests
Remove references to EasyFramed and easy module.
2016-11-15 00:07:54 -06:00
Bheesham Persaud
06a4c5e2d5 Remove references to EasyFramed and easy module. 2016-11-15 00:42:46 -05:00
Alex Crichton
f6241b6330 Touch up Reactor::poll 2016-11-11 14:27:49 -08:00
Alex Crichton
092574b7de Merge branch 'aphs-core-stream' of https://github.com/aidanhs/tokio-core 2016-11-11 14:06:03 -08:00
Alex Crichton
6e7410567c Typo 2016-11-11 11:26:07 -08:00
Alex Crichton
3d69a8b7d0 Add a benchmark for futures channel latency 2016-11-10 20:10:02 -08:00