aboutsummaryrefslogtreecommitdiff
path: root/src/rt
Commit message (Collapse)AuthorAgeFilesLines
...
* Tidy up the sync dir, remove dead or mis-designed code in favour of OS ↵Graydon Hoare2010-09-0817-345/+170
| | | | primitives, switch rust_kernel to use a lock/signal pair and wait rather than spin.
* XFAIL many.rs since it crashes on win32, and add a time-slice sleep to the ↵Graydon Hoare2010-09-081-1/+24
| | | | kernel message loop to get tests to finish in a sane time.
* Cleaned up locking in the kernel.Michael Bebenita2010-09-083-53/+54
|
* Fixed race in the rust kernel.Michael Bebenita2010-09-074-19/+43
|
* Lots of design changes around proxies and message passing. Made it so that ↵Michael Bebenita2010-09-0721-410/+638
| | | | domains can only talk to other domains via handles, and with the help of the rust_kernel.
* Started work on a framework for writing runtime tests, added some simple ↵Michael Bebenita2010-09-074-0/+180
| | | | test cases.
* Small updates to util classes.Michael Bebenita2010-09-072-1/+24
|
* Change signature of array_list::pop().Michael Bebenita2010-09-073-7/+22
|
* Added "new" inline operators to memory regions.Michael Bebenita2010-09-071-0/+8
|
* Added a .cpp file for rust_proxy to help avoid .h file dependencies in the ↵Michael Bebenita2010-09-071-0/+1
| | | | future.
* Added a thread utility class to factor out operations on threads.Michael Bebenita2010-09-072-0/+64
|
* Added a few utility classes, cleaned up the include order of .h files, and ↵Michael Bebenita2010-09-0715-111/+246
| | | | started to make the Rust kernel own domain message queues rather than the Rust domains themselves.
* Add a little pointer-cast helper to dbg.Roy Frostig2010-09-061-0/+13
|
* When vec growth results in a newly allocated (extended) buffer, copy ↵Roy Frostig2010-09-031-9/+26
| | | | existing elements over via element-wise copy, not flat memcpy. Introduce new vec growth glue to achieve this.
* Whitespace churn.Graydon Hoare2010-08-311-38/+63
|
* Fix rust_vec constructor assertion failure caused by slow path of ↵Roy Frostig2010-08-311-2/+3
| | | | upcall_vec_grow. Add testcase.
* Implemented an lock free queue based on this paper ↵Michael Bebenita2010-08-247-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.
* Add support in dbg.debug_obj for printing the obj body.Roy Frostig2010-08-241-1/+7
|
* Add std.dbg module for inspecting rust values in memory.Roy Frostig2010-08-241-0/+100
|
* Disable task-growing logic for now until #151 is fixedPatrick Walton2010-08-201-1/+10
|
* Make _io.buf_reader read more than 0 bytes at a time.Roy Frostig2010-08-191-2/+22
|
* Added simple deadlock detection in the scheduler.Michael Bebenita2010-08-172-0/+28
|
* Lots of changes around memory managment in the Runtime. Added memory regions ↵Michael Bebenita2010-08-1712-124/+298
| | | | and fixed race caused by calling rust_srv::malloc() from multiple threads when sending messages.
* Add a "special" rust_log flag to be used for debugging in cases where the ↵Michael Bebenita2010-08-172-0/+2
| | | | full log output prevents races from occurring.
* Added labels to blocking conditions.Michael Bebenita2010-08-174-8/+13
|
* Fixed deadlock by removing channel flushing.Michael Bebenita2010-08-172-32/+20
|
* Made the lock_free_queue lock (temporarily, until fixed).Michael Bebenita2010-08-172-0/+7
|
* Putting out the burning tree on Windows. Turns out you can completely starve ↵Michael Bebenita2010-08-163-5/+5
| | | | threads by not yielding on windows/vmware, really weird.
* Un-xfailed working tests.Michael Bebenita2010-08-161-1/+2
|
* Pulled rust_srv in its own file. Some cleanup, and added varargs to ↵Michael Bebenita2010-08-166-128/+164
| | | | assertion macros.
* A little tidy-up that should have gone in with ↵Roy Frostig2010-08-121-2/+2
| | | | 4e376852e709844d67f94430d9dc954d5be722b4.
* Add vec debugging utility to _vec module.Roy Frostig2010-08-123-1/+20
|
* 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
| |