Michael Bebenita
|
988695a96c
|
Added support for task sleeping in the scheduler.
|
2010-08-11 21:24:04 -07:00 |
|
Graydon Hoare
|
dbe8760af3
|
Merge commit 'jyasskin/work'
Conflicts:
src/rt/rust_dom.cpp
src/rt/rust_upcall.cpp
|
2010-08-10 13:26:00 -07:00 |
|
Michael Bebenita
|
97d6342bf0
|
Synthesize a flush_chan upcall right before a channel's ref_count drops to zero. This should only happen in the Rust code and not in the drop glue, or on the unwind path. This change allows the task owning the channel to block on a flush and delete its own channel. This change also cleans up some code around rust_port and rust_chan.
|
2010-08-09 08:15:34 -07:00 |
|
Michael Bebenita
|
5917ca3519
|
Fixed deadlock in the scheduler caused by condition variables.
|
2010-08-09 08:06:08 -07:00 |
|
Michael Bebenita
|
30734a9a7b
|
Some pretty printing in the runtime.
|
2010-08-09 07:52:07 -07:00 |
|
Jeffrey Yasskin
|
b71340552f
|
Add names to tasks and domains. These can either be an explicit literal string
after the "spawn" keyword, or implicitly the call expression used to start the
spawn.
|
2010-08-09 11:43:16 +02:00 |
|
Graydon Hoare
|
0b9c882d66
|
Log join-wait count under rust_log::TASK bits, not ::ALL.
|
2010-07-29 10:41:22 -07:00 |
|
Michael Bebenita
|
4246d567b7
|
Move ports out into their own file, add data_message and make communication system use it (and proxies) instead of existing token scheme.
|
2010-07-28 20:30:29 -07:00 |
|
Michael Bebenita
|
4ff8e15128
|
Move notification-messages out into their own file and unify into notify_message, make them use proxies, cache task proxies in dom.
|
2010-07-28 20:30:29 -07:00 |
|
Michael Bebenita
|
defd8a66ea
|
Rename rust_proxy_delegate to maybe_proxy, flesh out logic in it. Add strong-ref distinction on rust_proxy.
|
2010-07-28 20:30:29 -07:00 |
|
Michael Bebenita
|
5db5eb0c55
|
Null rust_task::cond on wakeup, add asserts and logging to block/wakeup.
|
2010-07-28 20:30:29 -07:00 |
|
Graydon Hoare
|
9935a48e95
|
Fix message formatting in runtime library.
|
2010-07-20 15:16:09 -07:00 |
|
Michael Bebenita
|
00d1465d13
|
Added a message passing system based on lock free queues for inter-thread communication. Channels now buffer on the sending side, and no longer require blocking when sending. Lots of other refactoring and bug fixes.
|
2010-07-19 14:05:18 -07:00 |
|
Roy Frostig
|
7c8c98a6d7
|
Adjust call args laid out by fake frame created in rust_task::start to reflect new position of closure-or-obj pointer.
|
2010-07-15 12:30:46 -07:00 |
|
Graydon Hoare
|
7c837b8c9b
|
Correct doubly-linked list management logic; bug exposed during conversation on issue #106.
|
2010-07-12 13:26:28 -07:00 |
|
Chris Double
|
2fcd99c3e6
|
Fix for compile error when using gcc 4.5.0
|
2010-07-11 11:10:56 +08:00 |
|
Graydon Hoare
|
b1eeb9b825
|
Change from 'spawner' to 'supervisor' in rust_task, and add an unsupervise call.
|
2010-07-05 14:43:40 -07:00 |
|
Graydon Hoare
|
b2692ef2ec
|
Actually link GC allocations onto the gc_alloc_chain, der.
|
2010-07-02 08:17:41 -07:00 |
|
Graydon Hoare
|
5abc483d9a
|
Move more of the GC logic into the runtime.
|
2010-06-28 18:53:43 -07:00 |
|
Graydon Hoare
|
eed5c0aa24
|
Add rust_task::gc(size_t args) method that drops us back into the GC glue.
|
2010-06-25 16:54:03 -07:00 |
|
Graydon Hoare
|
d6b7c96c3e
|
Populate tree.
|
2010-06-23 21:03:09 -07:00 |
|