aboutsummaryrefslogtreecommitdiff
path: root/src/rt
Commit message (Collapse)AuthorAgeFilesLines
* Added support for task sleeping in the scheduler.Michael Bebenita2010-08-118-8/+127
|
* Remove commented-out code that slipped in during last commit.Roy Frostig2010-08-111-16/+0
|
* Ignore upcall_flush for channels that are disassociated from ports. This ↵Michael Bebenita2010-08-114-2/+16
| | | | makes task-comm-10 break a little less hard, but it still leaks because messages pending in the channel are never freed.
* Made ref_count a word sized value.Michael Bebenita2010-08-111-1/+1
|
* Print domain and task names in log prefix.Michael Bebenita2010-08-111-4/+13
|
* Add native vec[u8] to str converter. Put in workaround for leak in str to ↵Roy Frostig2010-08-111-19/+68
| | | | vec[u8] converter. Add testcase exercising both. Drive-by fix a potential array-out-of-bounds write on rust_str buffers.
* Merge commit 'jyasskin/work'Graydon Hoare2010-08-106-78/+104
|\ | | | | | | | | | | 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-096-71/+100
| | | | | | | | | | 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-098-55/+93
| | | | | | | | 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-094-11/+13
| |
* | Added peek() to ptr_vec.Michael Bebenita2010-08-092-0/+8
| |
* | Made ref_count signed to help detect negative ref_count bugs.Michael Bebenita2010-08-091-1/+1
| |
* | Some pretty printing in the runtime.Michael Bebenita2010-08-096-18/+66
| |
* | Added class to abstract away platform specific thread primitives.Michael Bebenita2010-08-092-0/+21
| |
* | Made the runtime keep track of all live domains and print their state.Michael Bebenita2010-08-092-0/+16
| |
* | Added the RUST_SEED env variable to seed the Rust task scheduler -- helpful ↵Michael Bebenita2010-08-091-5/+14
| | | | | | | | when debugging task race conditions within a single thread domain.
* | Added "none" option to rust_log env string to disable all log output.Michael Bebenita2010-08-091-0/+1
| |
* | Added timed_wait to condition variables.Michael Bebenita2010-08-093-5/+26
| |
* | Changed array_list::replace() return behavior.Michael Bebenita2010-08-092-8/+10
|/
* Implement _str.len() to return the number of bytes, rename it to byte_len(),Jeffrey Yasskin2010-08-061-0/+6
| | | | and add a test.
* Add a buffered writer to stdlib _io module.Roy Frostig2010-08-041-2/+2
|
* Log join-wait count under rust_log::TASK bits, not ::ALL.Graydon Hoare2010-07-291-1/+1
|
* Log dead tasks when dom is just waiting for refcounts to drop.Michael Bebenita2010-07-281-2/+7
|
* Note that we keep running the main loop until all task refcounts are zero.Michael Bebenita2010-07-281-1/+2
|
* Move ports out into their own file, add data_message and make communication ↵Michael Bebenita2010-07-2813-178/+254
| | | | system use it (and proxies) instead of existing token scheme.
* Move notification-messages out into their own file and unify into ↵Michael Bebenita2010-07-287-65/+244
| | | | 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-284-23/+48
| | | | strong-ref distinction on rust_proxy.
* Add rust_dom::log_state, for logging the running/blocked/dead vectors per ↵Michael Bebenita2010-07-282-0/+32
| | | | scheduling iteration.
* Null rust_task::cond on wakeup, add asserts and logging to block/wakeup.Michael Bebenita2010-07-281-5/+11
|
* Teach task_owned and dom_owned to find their dom via consistent interface.Michael Bebenita2010-07-281-0/+6
|
* Add modeline / file-local emacs var blocks.Michael Bebenita2010-07-285-0/+54
|
* Move rust_cond.Michael Bebenita2010-07-281-9/+7
|
* Fix typos in comments, delete obsolete comments and dead commented code.Michael Bebenita2010-07-285-92/+2
|
* Wrap long lines.Michael Bebenita2010-07-282-3/+4
|
* Add C++ wrapper around uthash.Michael Bebenita2010-07-281-0/+193
|
* Let circular buffers actually grow to max sz, reset _next when resizing.Michael Bebenita2010-07-281-5/+7
|
* Change unread-on-destroy condition for circular buffer to merely a warning.Michael Bebenita2010-07-281-1/+1
|
* Add comment explaining NULL case in circular_buffer::enqueue and add logging ↵Michael Bebenita2010-07-281-1/+7
| | | | to ::dequeue.
* Add peek method to circular buffer.Michael Bebenita2010-07-282-0/+6
|
* Change _unit_sz to unit_sz and make public in circular_buffer.Michael Bebenita2010-07-282-17/+17
|
* Make circular buffer use only power-of-two sizes, cheaper arithmetic.Michael Bebenita2010-07-282-3/+15
|
* Add a warning interface to rust_srv.Michael Bebenita2010-07-283-2/+15
|
* Move allocation-tracking into rust_srv.Michael Bebenita2010-07-282-10/+14
|
* Log a separator when logging switches between threads.Michael Bebenita2010-07-282-3/+8
|
* array_list improvements.Michael Bebenita2010-07-281-1/+21
|
* Refer to issue #136 at the offending source point.Roy Frostig2010-07-281-0/+1
|
* Test the deque a bit. Give it a get-by-index method. Fix two uncovered ↵Roy Frostig2010-07-282-2/+8
| | | | state-calculation bugs --- one decently, the other with an ugly hack. Bug on the latter coming right up.
* vec_alloc takes four arguments these days, not three.Roy Frostig2010-07-251-1/+1
|
* Attempt 2. This time actually reading my own diffs before committing.Roy Frostig2010-07-251-0/+19
|
* Attempt number 1 at extinguishing the windows tree remotely (apologies to ↵Roy Frostig2010-07-252-22/+3
| | | | those hacking on Sunday evening PST).