Commit graph

490 commits

Author SHA1 Message Date
Brian Anderson
a09972db35 std: Move dynamic borrowck code from unstable::lang to rt::borrowck 2013-06-24 17:07:03 -07:00
Brian Anderson
aa9210d25a std: Rewrite vec_reserve_shared_actual in Rust 2013-06-24 17:07:01 -07:00
Daniel Micay
e2e39234cc remove old_iter
the `test/run-pass/class-trait-bounded-param.rs` test was xfailed and
written in an ancient dialect of Rust so I've just removed it

this also removes `to_vec` from DList because it's provided by
`std::iter::to_vec`

an Iterator implementation is added for OptVec but some transitional
internal iterator methods are still left
2013-06-24 01:35:11 -04:00
Philipp Brüschweiler
469f394b25 Remove intrinsic module
To achieve this, the following changes were made:
* Move TyDesc, TyVisitor and Opaque to std::unstable::intrinsics
* Convert TyDesc, TyVisitor and Opaque to lang items instead of specially
  handling the intrinsics module
* Removed TypeDesc, FreeGlue and get_type_desc() from sys

Fixes #3475.
2013-06-23 12:49:16 +02:00
Eric Reed
58b2ff9f56 Split out starting a listener from accepting incoming connections.
The Listener trait takes two type parameters, the type of connection and the type of Acceptor,
and specifies only one method, listen, which consumes the listener and produces an Acceptor.

The Acceptor trait takes one type parameter, the type of connection, and defines two methods.
The accept() method waits for an incoming connection attempt and returns the result.
The incoming() method creates an iterator over incoming connections and is a default method.

Example:

let listener = TcpListener.bind(addr); // Bind to a socket
let acceptor = listener.listen(); // Start the listener
for stream in acceptor.incoming() {
    // Process incoming connections forever (or until you break out of the loop)
}
2013-06-23 00:03:11 -07:00
Eric Reed
efb8924f88 Add a variant of home_for_io that consumes the handle. Refactor out common parts of the home_for_io variants. 2013-08-27 14:28:34 -07:00
Daniel Micay
d2e9912aea vec: remove BaseIter implementation
I removed the `static-method-test.rs` test because it was heavily based
on `BaseIter` and there are plenty of other more complex uses of static
methods anyway.
2013-06-23 02:05:20 -04:00
Brian Anderson
95eb01957b std: Make console log off/on controls work with newsched 2013-06-21 16:52:07 -07:00
Brian Anderson
1b7c99655f std::rt: Support os::args 2013-06-21 14:42:15 -07:00
Brian Anderson
7a9a6e4591 std: Port SharedChan to newsched 2013-06-20 18:26:56 -07:00
Brian Anderson
357f087786 Merge remote-tracking branch 'brson/io' into io-upstream
Conflicts:
	src/rt/rust_builtin.cpp
	src/rt/rustrt.def.in
2013-06-20 12:17:00 -07:00
Brian Anderson
4d39253a96 std::rt: Whitespace 2013-06-20 12:16:04 -07:00
Brian Anderson
bbf5469b75 Merge remote-tracking branch 'brson/io-wip' into io 2013-06-20 11:26:29 -07:00
Eric Reed
55dda46cf6 Merge remote-tracking branch 'upstream/io' into io 2013-06-20 10:51:04 -07:00
Eric Reed
36c0e04e57 derived instances of Eq and TotalEq for IpAddr rather than implement them manually. 2013-06-19 17:39:02 -07:00
Eric Reed
ac49b74e82 socket based UDP io 2013-06-19 17:23:55 -07:00
Brian Anderson
5086c0850e std::rt: Update GC metadata in init 2013-06-19 16:08:07 -07:00
Eric Reed
083c692565 Changed visibility from being on the impl to being on methods per language syntax change. 2013-06-19 15:39:18 -07:00
toddaaro
753b497b4e Modified a match in resume_task_from_queue that was returning an int that was then matched on to instead use an enum. 2013-06-19 15:23:14 -07:00
Eric Reed
d777ba01cb Wrote the Eq instance of IpAddr in a slightly different way. 2013-06-19 15:20:28 -07:00
Brian Anderson
e1555f9b56 std::rt: Document and cleanup the run function 2013-06-19 01:13:56 -07:00
Brian Anderson
5722c953e5 std::rt: Correct the numbers of default cores 2013-06-19 00:49:05 -07:00
Brian Anderson
915aaa7f67 std::rt: Set the process exit code 2013-06-19 00:39:10 -07:00
Brian Anderson
1120f8c1e5 std::rt: Work around a dynamic borrowck bug 2013-06-18 23:20:53 -07:00
Brian Anderson
29ad8e15a2 std::rt: Improve the rtabort! macro 2013-06-18 16:27:48 -07:00
Graydon Hoare
d904c72af8 replace #[inline(always)] with #[inline]. r=burningtree. 2013-06-18 14:48:48 -07:00
Brian Anderson
5b2dc52034 std::rt: Turn on multithreaded scheduling 2013-06-18 00:17:14 -07:00
Brian Anderson
b5fbec9c1e std: Rename abort! to rtabort! to match other macros 2013-06-17 23:24:50 -07:00
Brian Anderson
021e81fbd3 std::rt: move abort function to util module 2013-06-17 23:22:41 -07:00
Brian Anderson
9ef4c413a8 std::rt: Check exchange count on exit 2013-06-17 23:18:20 -07:00
Brian Anderson
3281f5b637 std::rt: Add util mod and num_cpus function 2013-06-17 22:17:51 -07:00
Eric Reed
35f3fa6383 Merge remote-tracking branch 'upstream/io' into io
Conflicts:
	src/libstd/rt/uvio.rs
2013-06-17 12:45:40 -07:00
Eric Reed
33ae193a3c Started to implemented UdpStream 2013-06-17 12:35:41 -07:00
Eric Reed
e42f28c05c stated to implement UdpStream 2013-06-17 12:34:58 -07:00
Eric Reed
47443753f1 added Eq and TotalEq instances for IpAddr 2013-06-17 12:33:46 -07:00
Eric Reed
7e022c590f added a function to convert C's ipv4 data structure into the Rust ipv4 data structure. 2013-06-17 12:33:10 -07:00
Eric Reed
b51d1885be Added a RtioUdpStream trait 2013-06-17 12:32:21 -07:00
Eric Reed
9687437d45 added wrappers about uv_ip{4,6}_{port,name} 2013-06-17 12:31:30 -07:00
Brian Anderson
93156ab7e1 std::rt: Reduce the delay on a timer test. Slow 2013-06-16 19:24:51 -07:00
Brian Anderson
319cf6e465 Merge remote-tracking branch 'brson/io'
Conflicts:
	src/libstd/rt/comm.rs
	src/libstd/rt/mod.rs
	src/libstd/rt/sched.rs
	src/libstd/rt/task.rs
	src/libstd/rt/test.rs
	src/libstd/rt/tube.rs
	src/libstd/rt/uv/uvio.rs
	src/libstd/rt/uvio.rs
	src/libstd/task/spawn.rs
2013-06-16 15:09:25 -07:00
Brian Anderson
3208fc36bf Merge remote-tracking branch 'brson/io-wip' into io
Conflicts:
	src/libstd/rt/sched.rs
	src/libstd/rt/task.rs
	src/libstd/rt/test.rs
	src/libstd/task/mod.rs
	src/libstd/task/spawn.rs
2013-06-15 19:31:46 -07:00
Daniel Micay
6c547e42c8 rm vec::uniq_len 2013-06-15 22:16:21 -04:00
Brian Anderson
505ef7e710 std::rt: Tasks contain a JoinLatch 2013-06-15 19:00:44 -07:00
Brian Anderson
b08c446798 Merge remote-tracking branch 'toddaaro/io' into io 2013-06-15 17:00:36 -07:00
toddaaro
d1ec8b5fb8 redesigned the pinning to pin deal with things on dequeue, not on enqueue 2013-06-14 12:17:56 -07:00
Eric Reed
a7f92c92ed Added a UdpWatcher and UdpSendRequest with associated callbacks 2013-06-14 12:04:11 -07:00
Eric Reed
03fe59aefa added bindings to extract udp handle from udp send requests 2013-06-14 11:54:56 -07:00
Brian Anderson
90fbe38f00 std::rt: Tasks must have an unwinder. Simpler 2013-06-13 23:18:49 -07:00
Brian Anderson
fd148cd3e2 std::rt: Change the Task constructors to reflect a tree 2013-06-13 23:18:49 -07:00
Brian Anderson
abc3a8aa1e std::rt: Add JoinLatch
This is supposed to be an efficient way to link the lifetimes
of tasks into a tree. JoinLatches form a tree and when `release`
is called they wait on children then signal the parent.

This structure creates zombie tasks which currently keep the entire
task allocated. Zombie tasks are supposed to be tombstoned but that
code does not work correctly.
2013-06-13 23:18:45 -07:00