about summary refs log tree commit diff
path: root/src/rt
AgeCommit message (Collapse)AuthorLines
2010-09-06Add a little pointer-cast helper to dbg.Roy Frostig-0/+13
2010-09-03When vec growth results in a newly allocated (extended) buffer, copy ↵Roy Frostig-9/+26
existing elements over via element-wise copy, not flat memcpy. Introduce new vec growth glue to achieve this.
2010-08-31Whitespace churn.Graydon Hoare-38/+63
2010-08-31Fix rust_vec constructor assertion failure caused by slow path of ↵Roy Frostig-2/+3
upcall_vec_grow. Add testcase.
2010-08-24Implemented an lock free queue based on this paper ↵Michael Bebenita-21/+294
http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf, the "lock free queue" we had before wasn't lock free at all.
2010-08-24Add support in dbg.debug_obj for printing the obj body.Roy Frostig-1/+7
2010-08-24Add std.dbg module for inspecting rust values in memory.Roy Frostig-0/+100
2010-08-20Disable task-growing logic for now until #151 is fixedPatrick Walton-1/+10
2010-08-19Make _io.buf_reader read more than 0 bytes at a time.Roy Frostig-2/+22
2010-08-17Added simple deadlock detection in the scheduler.Michael Bebenita-0/+28
2010-08-17Lots of changes around memory managment in the Runtime. Added memory regions ↵Michael Bebenita-124/+298
and fixed race caused by calling rust_srv::malloc() from multiple threads when sending messages.
2010-08-17Add a "special" rust_log flag to be used for debugging in cases where the ↵Michael Bebenita-0/+2
full log output prevents races from occurring.
2010-08-17Added labels to blocking conditions.Michael Bebenita-8/+13
2010-08-17Fixed deadlock by removing channel flushing.Michael Bebenita-32/+20
2010-08-17Made the lock_free_queue lock (temporarily, until fixed).Michael Bebenita-0/+7
2010-08-16Putting out the burning tree on Windows. Turns out you can completely starve ↵Michael Bebenita-5/+5
threads by not yielding on windows/vmware, really weird.
2010-08-16Un-xfailed working tests.Michael Bebenita-1/+2
2010-08-16Pulled rust_srv in its own file. Some cleanup, and added varargs to ↵Michael Bebenita-128/+164
assertion macros.
2010-08-12A little tidy-up that should have gone in with ↵Roy Frostig-2/+2
4e376852e709844d67f94430d9dc954d5be722b4.
2010-08-12Add vec debugging utility to _vec module.Roy Frostig-1/+20
2010-08-11Added support for task sleeping in the scheduler.Michael Bebenita-8/+127
2010-08-11Remove commented-out code that slipped in during last commit.Roy Frostig-16/+0
2010-08-11Ignore upcall_flush for channels that are disassociated from ports. This ↵Michael Bebenita-2/+16
makes task-comm-10 break a little less hard, but it still leaks because messages pending in the channel are never freed.
2010-08-11Made ref_count a word sized value.Michael Bebenita-1/+1
2010-08-11Print domain and task names in log prefix.Michael Bebenita-4/+13
2010-08-11Add native vec[u8] to str converter. Put in workaround for leak in str to ↵Roy Frostig-19/+68
vec[u8] converter. Add testcase exercising both. Drive-by fix a potential array-out-of-bounds write on rust_str buffers.
2010-08-10Merge commit 'jyasskin/work'Graydon Hoare-78/+104
Conflicts: src/rt/rust_dom.cpp src/rt/rust_upcall.cpp
2010-08-09Synthesize a flush_chan upcall right before a channel's ref_count drops to ↵Michael Bebenita-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.
2010-08-09Fixed deadlock in the scheduler caused by condition variables.Michael Bebenita-11/+13
2010-08-09Added peek() to ptr_vec.Michael Bebenita-0/+8
2010-08-09Made ref_count signed to help detect negative ref_count bugs.Michael Bebenita-1/+1
2010-08-09Some pretty printing in the runtime.Michael Bebenita-18/+66
2010-08-09Added class to abstract away platform specific thread primitives.Michael Bebenita-0/+21
2010-08-09Made the runtime keep track of all live domains and print their state.Michael Bebenita-0/+16
2010-08-09Added the RUST_SEED env variable to seed the Rust task scheduler -- helpful ↵Michael Bebenita-5/+14
when debugging task race conditions within a single thread domain.
2010-08-09Added "none" option to rust_log env string to disable all log output.Michael Bebenita-0/+1
2010-08-09Added timed_wait to condition variables.Michael Bebenita-5/+26
2010-08-09Changed array_list::replace() return behavior.Michael Bebenita-8/+10
2010-08-09Add names to tasks and domains. These can either be an explicit literal stringJeffrey Yasskin-71/+100
after the "spawn" keyword, or implicitly the call expression used to start the spawn.
2010-08-06Implement _str.len() to return the number of bytes, rename it to byte_len(),Jeffrey Yasskin-0/+6
and add a test.
2010-08-04Add a buffered writer to stdlib _io module.Roy Frostig-2/+2
2010-07-29Log join-wait count under rust_log::TASK bits, not ::ALL.Graydon Hoare-1/+1
2010-07-28Log dead tasks when dom is just waiting for refcounts to drop.Michael Bebenita-2/+7
2010-07-28Note that we keep running the main loop until all task refcounts are zero.Michael Bebenita-1/+2
2010-07-28Move ports out into their own file, add data_message and make communication ↵Michael Bebenita-178/+254
system use it (and proxies) instead of existing token scheme.
2010-07-28Move notification-messages out into their own file and unify into ↵Michael Bebenita-65/+244
notify_message, make them use proxies, cache task proxies in dom.
2010-07-28Rename rust_proxy_delegate to maybe_proxy, flesh out logic in it. Add ↵Michael Bebenita-23/+48
strong-ref distinction on rust_proxy.
2010-07-28Add rust_dom::log_state, for logging the running/blocked/dead vectors per ↵Michael Bebenita-0/+32
scheduling iteration.
2010-07-28Null rust_task::cond on wakeup, add asserts and logging to block/wakeup.Michael Bebenita-5/+11
2010-07-28Teach task_owned and dom_owned to find their dom via consistent interface.Michael Bebenita-0/+6