Patrick Walton
eb7e9dce4d
rt: Stub the shape-based cmp upcall
2011-08-08 14:33:06 -07:00
Eric Holk
d9b84a546c
Converted the rest of the task-comm-* tests over. Also fixed some
...
channel lifecycle bugs.
2011-08-08 08:57:52 -07:00
Patrick Walton
0aeddb3673
rt: Stub compare glue
2011-08-05 18:47:12 -07:00
Patrick Walton
d7828e694d
rt: Uncomment data<T>
2011-08-05 17:50:59 -07:00
Eric Holk
50670eb426
Removing trailing whitespace in rust_shape.cpp
2011-08-05 17:08:22 -07:00
Patrick Walton
5261bd771f
rt: Simplify the signature of walk_tag; stub code for the data walker
2011-08-05 16:47:43 -07:00
Brian Anderson
f918418953
Fix a type in the libuv mingw makefile
2011-08-05 15:48:19 -07:00
Eric Holk
b62e80c1f0
Atomic ref counting for chans.
2011-08-05 15:27:28 -07:00
Eric Holk
200bbcf91b
Rewrote receive to return a value. This lets us initialize variables by receiving them.
2011-08-05 15:27:27 -07:00
Graydon Hoare
7da64ae461
Munge libuv makefiles sufficiently to build out of tree.
2011-08-05 11:57:07 -07:00
Brian Anderson
f6d5c56f21
Tweak libuv makefiles so they pick up custom CFLAGS
2011-08-05 11:57:07 -07:00
Brian Anderson
e653520a6f
Fix uv_buf_t declaration on win32
...
The fields of this structure are mysteriously defined in the opposite order
on windows as on unix
2011-08-05 11:57:06 -07:00
Rob Arnold
a4951cab7f
Add libuv Makefile
2011-08-05 11:57:06 -07:00
Rob Arnold
8229c3fa75
Update libuv to revision ee599ec1141cc48f895de1f9d148033babdf9c2a
2011-08-05 11:57:06 -07:00
Rob Arnold
f4b87c749f
Basic async IO module using libuv
2011-08-05 11:57:06 -07:00
Rob Arnold
b64a52df42
Integrate libuv into the build system
2011-08-05 11:57:06 -07:00
Rob Arnold
904f443fa9
Drop in libuv rev 2b5707d834a6b85b8e589ac04cb61a6db2dab94b
2011-08-05 11:57:06 -07:00
Rob Arnold
b6be83885f
Log tags in memory_region::{free,realloc}
...
Make this useful and consistent with the destructor.
2011-08-05 11:57:06 -07:00
Patrick Walton
6bb6922c28
rt: Change int to uint32_t. Put out burning tinderbox.
2011-08-04 09:50:11 -07:00
Patrick Walton
e351ad762d
rt: Stub shape glue and implement shape::print and shape::size_of.
2011-08-03 20:25:44 -07:00
Erick Tryzelaar
a8943f3442
timeout_in_ns was renamed to timeout_in_ms.
2011-08-03 19:28:49 -07:00
Eric Holk
7a2e9f4874
Sleep for a nonzero amount of time on Windows.
2011-08-03 18:21:19 -07:00
Brian Anderson
2298a2b29f
Whitespace cleanup
2011-08-03 16:25:38 -07:00
Brian Anderson
4ae6c835cb
Add some hacks to get stdin piping working more correctly in windows
...
The way pipes work in windows is not the same as unix, though I'm not
entirely clear on the differences. This patch changes the windows pipe
method to return non-inheritable fds, and the windows rust_run_program
method to duplicate them before spawning the new process.
This allows make-check-pretty to work on windows.
2011-08-03 15:09:00 -07:00
Eric Holk
286be2d94e
Adding an intrinsic for recv.
2011-08-01 18:43:05 -07:00
Eric Holk
939bca0d84
Added send and receive to comm library.
2011-08-01 15:58:39 -07:00
Eric Holk
6a6d5c669e
Enabling logging in circular_buffer again.
2011-08-01 15:58:39 -07:00
Eric Holk
b3d9d9b73c
Objectified library chans and ports.
2011-08-01 15:58:30 -07:00
Eric Holk
5a673cc2c9
Started working on a library-based comm system. Creating and deleting ports work.
2011-08-01 15:58:30 -07:00
Brian Anderson
7b87fa3683
Replace a lock/unlock with scoped_lock in rust_scheduler::create_task
2011-08-01 11:01:59 -07:00
Brian Anderson
d552a0b959
Minimize scheduler locking on task creation
...
This takes my CPU utilization on task-perf-spawnalot from 35% to 55%
2011-07-29 23:02:51 -07:00
Brian Anderson
6657e729de
Lock the new task's scheduler when creating a task
...
Previously we were locking the spawning task's scheduler. I couldn't
see that that was protecting anything. The newborn_task list in the new task's
scheduler though was unprotected from concurrent access. So now we're locking
the new task's scheduler.
2011-07-29 22:43:11 -07:00
Brian Anderson
9dbe6941c4
Add sched_threads rt function to get the number of scheduler threads
2011-07-29 21:03:17 -07:00
Eric Holk
d1dbb99984
Removing proxies and message queues.
2011-07-29 18:54:59 -07:00
robarnold
bdf2daee1e
Merge pull request #781 from robarnold/upstream-stable
...
More useful leak debugging output.
2011-07-29 09:13:20 -07:00
Brian Anderson
3dd522b6b7
Add an assertion about the lock in rust_chan::disassociate
2011-07-28 16:04:49 -07:00
Brian Anderson
73812cd3de
Turn off TRACK_ALLOCATIONS
2011-07-28 14:52:50 -07:00
Brian Anderson
4b356097c2
Change the locking rules around channel disassociation again
...
This prevents port's destructor from accessing a deleted channel
2011-07-28 14:25:20 -07:00
Brian Anderson
5c0fd045ce
Fiddle with the locking around channel disassociation
...
This still looks a bit sketchy to me (why isn't there locking in
port::destroy?) but this manages to get rid of a problem with channels
accessing their task after it's NULL.
2011-07-28 12:53:44 -07:00
Brian Anderson
b54eb0480d
No strnlen on mac
2011-07-28 12:53:14 -07:00
Brian Anderson
0fcd72c932
When using the allow leaks hack don't even print a warning about the leak
...
This is only used for the test runner and in that case it just makes the test
output confusing
2011-07-28 12:23:01 -07:00
Brian Anderson
4ef1ec580a
Do all runtime calls to getenv at initialization
...
getenv is not threadsafe and (maybe as a result) it's randomly crashing with
CFLAGS=-g and RUST_THREADS=32. Calls from rust code are still on their
own.
2011-07-28 12:23:01 -07:00
Brian Anderson
75985ab75e
Remove color-related code from rust_log
...
This is all dead. If someone decides they want color it will be easy to redo.
2011-07-28 12:23:00 -07:00
Eric Holk
3d7016ae95
Updating to work on Windows.
2011-07-28 10:47:29 -07:00
Eric Holk
9618ab67ae
Re-enabled the rest of the asserts and things in rust_chan.cpp
2011-07-28 10:47:29 -07:00
Eric Holk
b85dee8d5b
Resurrecting some of the logging in rust_chan.cpp
2011-07-28 10:47:28 -07:00
Eric Holk
9ea8476faa
Removed outdated comment.
2011-07-28 10:47:28 -07:00
Eric Holk
279844ce9f
Atomic reference counting for tasks.
2011-07-28 10:47:28 -07:00
Eric Holk
a5fe66e706
Adding upcalls to to ref() and deref() tasks. This is the first step towards atomic reference counting of tasks.
2011-07-28 10:47:28 -07:00
Eric Holk
5302cde188
Made task threads wait instead of sleep, so they can be woken up. This appears to give us much better parallel performance.
...
Also, commented out one more unsafe log and updated rust_kernel.cpp to compile under g++
2011-07-28 10:47:28 -07:00