aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust_task.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Added support for task sleeping in the scheduler.Michael Bebenita2010-08-111-3/+9
|
* Merge commit 'jyasskin/work'Graydon Hoare2010-08-101-19/+24
|\ | | | | | | | | | | Conflicts: src/rt/rust_dom.cpp src/rt/rust_upcall.cpp
| * Add names to tasks and domains. These can either be an explicit literal stringJeffrey Yasskin2010-08-091-19/+24
| | | | | | | | | | after the "spawn" keyword, or implicitly the call expression used to start the spawn.
* | Synthesize a flush_chan upcall right before a channel's ref_count drops to ↵Michael Bebenita2010-08-091-0/+5
| | | | | | | | 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.
* | Fixed deadlock in the scheduler caused by condition variables.Michael Bebenita2010-08-091-3/+0
| |
* | Some pretty printing in the runtime.Michael Bebenita2010-08-091-0/+5
|/
* Log join-wait count under rust_log::TASK bits, not ::ALL.Graydon Hoare2010-07-291-1/+1
|
* Move ports out into their own file, add data_message and make communication ↵Michael Bebenita2010-07-281-14/+0
| | | | system use it (and proxies) instead of existing token scheme.
* Move notification-messages out into their own file and unify into ↵Michael Bebenita2010-07-281-0/+18
| | | | notify_message, make them use proxies, cache task proxies in dom.
* Rename rust_proxy_delegate to maybe_proxy, flesh out logic in it. Add ↵Michael Bebenita2010-07-281-1/+1
| | | | strong-ref distinction on rust_proxy.
* Null rust_task::cond on wakeup, add asserts and logging to block/wakeup.Michael Bebenita2010-07-281-5/+11
|
* Fix message formatting in runtime library.Graydon Hoare2010-07-201-6/+6
|
* Added a message passing system based on lock free queues for inter-thread ↵Michael Bebenita2010-07-191-16/+41
| | | | communication. Channels now buffer on the sending side, and no longer require blocking when sending. Lots of other refactoring and bug fixes.
* Adjust call args laid out by fake frame created in rust_task::start to ↵Roy Frostig2010-07-151-0/+3
| | | | reflect new position of closure-or-obj pointer.
* Correct doubly-linked list management logic; bug exposed during conversation ↵Graydon Hoare2010-07-121-0/+4
| | | | on issue #106.
* Fix for compile error when using gcc 4.5.0Chris Double2010-07-111-1/+1
|
* Change from 'spawner' to 'supervisor' in rust_task, and add an unsupervise call.Graydon Hoare2010-07-051-5/+14
|
* Actually link GC allocations onto the gc_alloc_chain, der.Graydon Hoare2010-07-021-0/+1
|
* Move more of the GC logic into the runtime.Graydon Hoare2010-06-281-0/+78
|
* Add rust_task::gc(size_t args) method that drops us back into the GC glue.Graydon Hoare2010-06-251-0/+8
|
* Populate tree.Graydon Hoare2010-06-231-0/+474