Jeff Olson
9edcb104ff
std: addressing #2656 (ipv6 support in net::tcp)
...
.. there are some additional FIXME nags in net_tcp (L 1012) about blocking
because libuv is holding unsafe ptrs to task local data. the proposed
fix going is not really feasible w/ the current design, IMO, but i'll
leave it there in case someone really wants to make the case without
creating more hassle than it's worth.
2012-06-29 15:41:56 -07:00
Jeff Olson
8794815da9
rt: get rid of unused helpers for AF_INET and add bool-based ones, instead
2012-06-29 15:41:56 -07:00
Jeff Olson
bcc341f5fb
rt: adding uv_freeaddrinfo binding and tweek signature for uv_getaddrinfo
2012-06-29 15:41:56 -07:00
Jeff Olson
cac2a04667
fix typo in rustrt.def.in
2012-06-29 15:41:56 -07:00
Jeff Olson
237589b3c0
rt: more helper functions to get uv_getaddrinfo going
2012-06-29 15:41:56 -07:00
Jeff Olson
2ef9548f2c
rt: more sizeof helpers + misc consts for uv_getaddrinfo
2012-06-29 15:41:55 -07:00
Jeff Olson
511873afe3
rt: add remaining ip string parser/formatter helpers from uv
2012-06-29 15:41:55 -07:00
Ben Blum
af2d01e36b
Fix sys::refcount and remove dbg::refcount
2012-06-28 14:40:31 -04:00
Ben Blum
1ba3028d8b
rt: Add task_local_data and related builtin calls ( Closes #2680 )
2012-06-28 00:10:03 -04:00
Brian Anderson
7adad4c6cb
rt: Fix exports
2012-06-25 16:30:42 -07:00
Brian Anderson
d29e8fc059
rt: Remove upcall_malloc/upcall_exchange_malloc. Issue #2681
2012-06-25 16:01:47 -07:00
Eric Holk
dc718d97a6
Adding a lock/condition variable to libcore.
2012-06-19 10:31:12 -07:00
Tim Chevalier
3e2006a570
Revert "Adding a lock/condition variable to libcore."
...
This reverts commit e394ebda37
.
2012-06-16 15:34:15 -07:00
Eric Holk
e394ebda37
Adding a lock/condition variable to libcore.
2012-06-15 22:00:24 -04:00
Michael Sullivan
a72d469067
Add upcall_malloc_dyn to rustrt.def.in.
2012-06-13 18:36:58 -07:00
Brian Anderson
c816eea000
std: Add debug::breakpoint
2012-06-06 23:39:55 -07:00
Brian Anderson
a2bbdd3f52
rt: Remove upcall_shared_malloc/free/realloc
2012-05-30 21:23:34 -07:00
Brian Anderson
178c5cc4a3
rt: Add yet another allocating upcall
...
upcall_exchange_malloc_dyn, for allocating unique boxes for types that don't
have a fixed size.
2012-05-30 21:23:34 -07:00
Brian Anderson
508ccca014
rt: Add upcall_exchange_malloc/free
2012-05-30 21:23:33 -07:00
Eric Holk
6fa1a084f7
A shareable atomically reference counted pointer wrapper.
...
Needs more tests to ensure safety, and probably some more work on usability too.
2012-05-23 14:58:16 -07:00
Jeff Olson
8769409612
rt: adding rust_uv_* binding for kernel malloc and free'ing :/
...
I need these in the context of doing various malloc/free operations for
libuv structs that need to live in the heap, because of API workflow
(there's no stack to put them in). This has cropped up several times
when impl'ing the high-level API for things like timers, but I've decided
to take the plunge and use this approach for the net::tcp module.
Technically, this can be avoided by spawning a new
task that contains the needed memory structures on its stack and then
having it block for the duration of the time we need that memory to be
valid (this is what I did in std::timer). Exposing this API provides a
much lower overhead way to address
the issue, albeit with safety concerns. The main mitigation policy should
be to use malloc/free with libuv handles only when the handles, are then
associated with a resource or class-with-dtor. So we have a finite lifetime
for the object and can gaurantee a free(), barring a runtime crash (in
which case you have bigger problems!)
2012-05-22 22:29:16 -07:00
Gareth Daniel Smith
c9f8ae02bc
add a seeded random number generator so that sequences of random numbers can be easily reproduced (for https://github.com/mozilla/rust/issues/2379 )
2012-05-21 17:38:05 -07:00
Erick Tryzelaar
e7ca3e4db0
expose tzset
2012-05-19 10:08:43 -07:00
Niko Matsakis
f1a46914c4
add a new debugging aid--tracing
2012-05-18 19:07:19 -07:00
Brian Anderson
7277cd7198
core: Add task::unkillable
2012-05-15 16:13:42 -07:00
Brian Anderson
beb1a59f82
core: Add comm::recv_chan to receive from a channel
2012-05-03 16:38:16 -07:00
Brian Anderson
46cc11ea88
core: Serialize all access to the environment using a weak global task
2012-04-30 17:34:29 -07:00
Jeff Olson
577b888e4b
rt: remove unneccesary c++ functions and rust_kernel data, re: global loop
2012-04-27 22:19:30 -07:00
Jeff Olson
fbaba0f404
std: add ll::loop_refcount binding for uv_loop_refcount
2012-04-27 22:19:30 -07:00
Jeff Olson
a045e63639
std: get_monitor_task_gl() is global_loop::get() default
2012-04-20 15:23:23 -07:00
Jeff Olson
bea02ee351
adding missing binding to rustrt.def.in
2012-04-20 15:23:22 -07:00
Jeff Olson
253fad7788
replace impl of globa_async_handle with one using atomic compare-and-swap
2012-04-20 15:23:22 -07:00
Jeff Olson
d7a87aa0a1
remove rustrt.def.in entry for no-longer-existent c++ function
2012-04-20 15:23:22 -07:00
Jeff Olson
e604c15df1
bindings to get/set data field on uv_loop_t* and debug log cleanup
2012-04-20 15:23:21 -07:00
Jeff Olson
c6667c06c3
add needed fields for global libuv loop + bindings to manage from rust
...
adding two pointers fields to rust_kernel :(
.. have to do manual malloc/free for one of the fields, which feels wrong
2012-04-20 15:23:21 -07:00
Jeff Olson
bf99a3aa93
adding low-level uv_timer_* stuff to libuv bindings
2012-04-20 15:23:21 -07:00
Graydon Hoare
82727b926f
Get explicit unique estrs working.
2012-04-16 16:17:51 -07:00
Brian Anderson
01dc4a8b26
core: Add priv::weaken_task
2012-04-07 19:56:41 -07:00
Brian Anderson
63942c969d
core: Add priv::chan_from_global_ptr
...
This allows singleton, globally accessible tasks to be created
2012-04-06 17:44:26 -07:00
Jeff Olson
ce34ccfec9
removed this binding a few commits back. missed it in rustrt.def.in
2012-04-06 15:35:50 -07:00
Jeff Olson
2b606ae5f3
add libuv error msg helpers.. flushing out windows tcp issue.
2012-04-06 15:35:49 -07:00
Jeff Olson
2c26cf7f96
add low-level uv_async bindings for use in tcp test
2012-04-06 15:35:49 -07:00
Jeff Olson
922ed6f947
hello world test for a tcp server in libuv
...
.. im now going to refactor the tcp request and server tests to utilize
each other, so no more external network ugliness
2012-04-06 15:35:49 -07:00
Jeff Olson
f920d38808
adding missing rust_uv_* entries in rustrt.def.in
2012-04-06 15:35:48 -07:00
Erick Tryzelaar
4a4889859e
std: add localtime/gmtime support.
2012-04-03 22:43:10 -07:00
Brian Anderson
e325146eb4
Merge remote-tracking branch 'brson/mainthread'
...
Conflicts:
src/rt/rust_kernel.cpp
src/rt/rust_scheduler.cpp
src/rt/rust_scheduler.h
2012-04-03 20:30:01 -07:00
Brian Anderson
bef72447e7
core: Add a scheduler mode, osmain, to spawn onto the main scheduler
2012-04-03 14:28:30 -07:00
Graydon Hoare
28a0e9c999
Construct new strings through upcalls.
2012-04-02 17:38:06 -07:00
Graydon Hoare
855c99ea75
Some tests for passing and returning structures by value on x64. Close #1402 . Close #1970 .
2012-03-20 16:44:56 -07:00
Graydon Hoare
869b2d7064
Send string concatenation to specialized upcall, shave 17s off librustc compile time.
2012-03-19 14:29:39 -07:00