179 Commits

Author SHA1 Message Date
Erick Tryzelaar
3102b1797e std: replace str::as_c_str with std::c_str 2013-08-04 14:13:17 -07:00
bors
22f9ce4df6 auto merge of #8243 : stepancheg/rust/ipv, r=brson
multicast functions now take IpAddr (without port), because they dont't
need port.

Uv* types renamed:
* UvIpAddr -> UvSocketAddr
* UvIpv4 -> UvIpv4SocketAddr
* UvIpv6 -> UvIpv6SocketAddr

"Socket address" is a common name for (ip-address, port) pair (e.g. in
sockaddr_in struct).

P. S. Are there any backward compatibility concerns? What is std::rt module, is it a part of public API?
2013-08-04 08:49:55 -07:00
Daniel Micay
1008945528 remove obsolete foreach keyword
this has been replaced by `for`
2013-08-03 22:48:02 -04:00
Stepan Koltsov
9046516444 Rename IpAddr -> SocketAddr, extract IpAddr from SocketAddr
multicast functions now take IpAddr (without port), because they dont't
need port.

Uv* types renamed:
* UvIpAddr -> UvSocketAddr
* UvIpv4 -> UvIpv4SocketAddr
* UvIpv6 -> UvIpv6SocketAddr

"Socket address" is a common name for (ip-address, port) pair (e.g. in
sockaddr_in struct).
2013-08-03 02:06:24 +04:00
Daniel Micay
234acad404 replace range with an external iterator 2013-08-02 00:51:14 -04:00
toddaaro
1d82fe5aea fixed incorrect handling of returned scheduler option and restructed scheduler functions slightly 2013-08-01 15:18:29 -07:00
toddaaro
a5f55b3ead minor tweaks - unboxed the coroutine so that it is no longer a ~ pointer inside the task struct, and also added an assert to verify that send is never called inside scheduler context as it is undefined (BROKEN) if that happens 2013-08-01 15:17:19 -07:00
toddaaro
f7eed22387 A major refactoring that changes the way the runtime uses TLS. In the
old design the TLS held the scheduler struct, and the scheduler struct
held the active task. This posed all sorts of weird problems due to
how we wanted to use the contents of TLS. The cleaner approach is to
leave the active task in TLS and have the task hold the scheduler. To
make this work out the scheduler has to run inside a regular task, and
then once that is the case the context switching code is massively
simplified, as instead of three possible paths there is only one. The
logical flow is also easier to follow, as the scheduler struct acts
somewhat like a "token" indicating what is active.

These changes also necessitated changing a large number of runtime
tests, and rewriting most of the runtime testing helpers.

Polish level is "low", as I will very soon start on more scheduler
changes that will require wiping the polish off. That being said there
should be sufficient comments around anything complex to make this
entirely respectable as a standalone commit.
2013-08-01 15:14:00 -07:00
Daniel Micay
1fc4db2d08 migrate many for loops to foreach 2013-08-01 05:34:55 -04:00
Brian Anderson
0144c83213 std::rt: Change Thread interface to require an explicit join
Makes it more obvious what's going on
2013-07-30 14:23:44 -07:00
Steven Stewart-Gallus
d0b7515aed Change concurrency primitives to standard naming conventions
To be more specific:

`UPPERCASETYPE` was changed to `UppercaseType`
`type_new` was changed to `Type::new`
`type_function(value)` was changed to `value.method()`
2013-07-27 22:06:29 -07:00
Luqman Aden
037bf3757c libstd: Implement some missing udp methods. 2013-07-25 22:21:46 -04:00
Luqman Aden
a5c6b85091 libstd: Implement some missing tcp methods. 2013-07-25 19:42:19 -04:00
Luqman Aden
d6e1a6b237 libstd: Get rid of duplication in {peer, socket}_name and remove extra *. 2013-07-25 15:50:19 -04:00
Luqman Aden
e2bb32bea1 libstd: Handle IPv4-Mapped/Compatible IPv6 addresses. 2013-07-25 05:57:52 -04:00
Luqman Aden
ac40d5323d libstd: Fix errors when rtdebug! is not a noop. 2013-07-25 05:57:52 -04:00
Luqman Aden
61e741cf71 libstd: Implement {peer, socket}_name for new rt tcp & udp. 2013-07-25 05:57:52 -04:00
Erick Tryzelaar
7af56bb921 std: move StrUtil::as_c_str into StrSlice 2013-07-23 16:56:22 -07:00
Jeff Olson
3169bb70d8 std: fix for blocked task resume 2013-07-22 15:28:32 -07:00
Jeff Olson
921d99108c std: add RtioTimer and UvTimer impl atop rt::uv 2013-07-22 13:19:04 -07:00
bors
c5c0252511 auto merge of #7908 : anasazi/rust/fix_udp_mut, r=brson 2013-07-20 13:31:34 -07:00
Ben Blum
9ad1997549 Change the HOF context switchers to pass a BlockedTask instead of a ~Task. 2013-07-20 05:08:57 -04:00
Eric Reed
b03f1e7357 Missed the methods of UdpWatcher. 2013-07-19 13:04:03 -07:00
Eric Reed
968f7f5d3d Changed methods on UDP sockets and TCP/UDP watchers to &mut self to reflect that libuv may change the underlying handle. 2013-07-19 13:04:03 -07:00
Patrick Walton
dc4bf173f8 test: Fix tests. 2013-07-17 14:57:55 -07:00
Patrick Walton
2dbb3c3887 test: Fix tests. 2013-07-17 14:57:54 -07:00
Austin King
712ac836c6 Rename Option swap_unwrap to take_unwrap. Fixes Issue#7764 2013-07-16 12:47:01 -07:00
Brian Anderson
413d51e32d std::rt: Ignore 0-byte udp reads 2013-07-09 16:54:56 -07:00
Brian Anderson
ec6d4a1733 std::rt: size_t, not u64 2013-07-09 11:05:57 -07:00
Brian Anderson
7826651335 Tidy 2013-07-08 17:22:51 -07:00
Brian Anderson
fae3336769 Merge remote-tracking branch 'mozilla/master'
Conflicts:
	src/libextra/test.rs
	src/libstd/rt/global_heap.rs
	src/libstd/unstable/lang.rs
	src/libstd/vec.rs
2013-07-08 16:29:54 -07:00
Eric Reed
5e0be46852 changed .each() to .iter().advance() 2013-07-08 14:19:39 -07:00
Eric Reed
6b2abcaa0f renamed finalize to drop in Drop impl for UvUdpSocket 2013-07-08 14:19:19 -07:00
Eric Reed
cf23292010 Merge remote-tracking branch 'upstream/io' into io
Conflicts:
	src/libstd/rt/uvio.rs
2013-07-08 13:03:18 -07:00
Brian Anderson
1098d6980b Merge remote-tracking branch 'mozilla/master'
Conflicts:
	src/libextra/test.rs
	src/libstd/at_vec.rs
	src/libstd/cleanup.rs
	src/libstd/rt/comm.rs
	src/libstd/rt/global_heap.rs
	src/libstd/task/spawn.rs
	src/libstd/unstable/lang.rs
	src/libstd/vec.rs
	src/rt/rustrt.def.in
	src/test/run-pass/extern-pub.rs
2013-07-03 14:49:13 -07:00
Huon Wilson
cdea73cf5b Convert vec::{as_imm_buf, as_mut_buf} to methods. 2013-07-04 00:46:50 +10:00
Eric Reed
b60cf0c5b0 converted TODOs into XXXs 2013-07-02 17:27:46 -07:00
Eric Reed
6a1a7819c9 Merge remote-tracking branch 'upstream/io' into io
Conflicts:
	src/libstd/rt/test.rs
	src/rt/rustrt.def.in
2013-07-02 16:55:56 -07:00
Eric Reed
e6c57793be IPv6 support for UDP and TCP. 2013-07-02 16:40:57 -07:00
toddaaro
5cfad4b6de Refactored the runtime to view coroutines as a component of tasks, instead of tasks as a component of coroutines. 2013-07-01 16:14:56 -07:00
Huon Wilson
366ca44cc8 std: silence some test warnings. 2013-06-28 01:45:24 +10:00
Eric Reed
42f3f069fa changed NOTE to TODO 2013-06-26 13:48:49 -07:00
Eric Reed
ce97bd4c8b cleaned up uv/net 2013-06-26 10:17:10 -07:00
Luqman Aden
ca2966c6d0 Change finalize -> drop. 2013-06-25 21:14:39 -04:00
Eric Reed
f604686295 converted UvUdpSocket into a newtype struct 2013-06-25 17:04:28 -07:00
Eric Reed
c5b19f0bf9 changed outdated match on IpAddr 2013-06-25 16:04:09 -07:00
Eric Reed
2c5cfe1037 removed obsolete FIXMEs. formatting changes. 2013-06-25 16:02:51 -07:00
Eric Reed
f202713b73 satisfy the formatting check 2013-06-25 14:40:36 -07:00
Eric Reed
1af2016358 removed unncessary unsafe block that was stopping compliation. 2013-06-25 11:59:47 -07:00
Eric Reed
4870dce3eb Merge remote-tracking branch 'upstream/io' into io
Conflicts:
	src/rt/rustrt.def.in
2013-06-25 11:45:44 -07:00