about summary refs log tree commit diff
path: root/src/libstd/task
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-10-24 14:26:15 -0700
committerbors <bors@rust-lang.org>2013-10-24 14:26:15 -0700
commit3f5b2219cc893b30863f9136703166f306fcc684 (patch)
treed7267619b1909f2deaf319c560a64d667d141d35 /src/libstd/task
parent61f8c059c4c6082683d78b2ee3d963f65fa1eb98 (diff)
parent188e471339dfe652b8ff9f3bbe4cc262a040c584 (diff)
downloadrust-3f5b2219cc893b30863f9136703166f306fcc684.tar.gz
rust-3f5b2219cc893b30863f9136703166f306fcc684.zip
auto merge of #9901 : alexcrichton/rust/unix-sockets, r=brson
Large topics:

* Implemented `rt::io::net::unix`. We've got an implementation backed by "named pipes" for windows for free from libuv, so I'm not sure if these should be `cfg(unix)` or whether they'd be better placed in `rt::io::pipe` (which is currently kinda useless), or to leave in `unix`. Regardless, we probably shouldn't deny windows of functionality which it certainly has.
* Fully implemented `net::addrinfo`, or at least fully implemented in the sense of making the best attempt to wrap libuv's `getaddrinfo` api
* Moved standard I/O to a libuv TTY instead of just a plain old file descriptor. I found that this interacted better when closing stdin, and it has the added bonus of getting things like terminal dimentions (someone should make a progress bar now!)
* Migrate to `~Trait` instead of a typedef'd object where possible. There are only two more types which are blocked on this, and those are traits which have a method which takes by-value self (there's an open issue on this)
* Drop `rt::io::support::PathLike` in favor of just `ToCStr`. We recently had a lot of Path work done, but it still wasn't getting passed down to libuv (there was an intermediate string conversion), and this allows true paths to work all the way down to libuv (and anything else that can become a C string).
* Removes `extra::fileinput` and `extra::io_util`


Closes #9895 
Closes #9975
Closes #8330
Closes #6850 (ported lots of libraries away from std::io)
cc #4248 (implemented unix/dns)
cc #9128 (made everything truly trait objects)
Diffstat (limited to 'src/libstd/task')
-rw-r--r--src/libstd/task/spawn.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libstd/task/spawn.rs b/src/libstd/task/spawn.rs
index dec13eded39..fbe2988f77c 100644
--- a/src/libstd/task/spawn.rs
+++ b/src/libstd/task/spawn.rs
@@ -89,7 +89,7 @@ use unstable::sync::Exclusive;
 use rt::in_green_task_context;
 use rt::local::Local;
 use rt::task::{Task, Sched};
-use rt::shouldnt_be_public::{Scheduler, KillHandle, WorkQueue, Thread};
+use rt::shouldnt_be_public::{Scheduler, KillHandle, WorkQueue, Thread, EventLoop};
 use rt::uv::uvio::UvEventLoop;
 
 #[cfg(test)] use task::default_task_opts;
@@ -607,7 +607,7 @@ pub fn spawn_raw(mut opts: TaskOpts, f: ~fn()) {
             let work_queue = WorkQueue::new();
 
             // Create a new scheduler to hold the new task
-            let new_loop = ~UvEventLoop::new();
+            let new_loop = ~UvEventLoop::new() as ~EventLoop;
             let mut new_sched = ~Scheduler::new_special(new_loop,
                                                         work_queue,
                                                         (*sched).work_queues.clone(),