aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust_dom.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Overhaul logging system in runtimeMarijn Haverbeke2011-04-191-69/+36
| | | | | | | | | | | | | | See https://github.com/graydon/rust/wiki/Logging-vision The runtime logging categories are now treated in the same way as modules in compiled code. Each domain now has a log_lvl that can be used to restrict the logging from that domain (will be used to allow logging to be restricted to a single domain). Features dropped (can be brought back to life if there is interest): - Logger indentation - Multiple categories per log statement - I possibly broke some of the color code -- it confuses me
* Move to macro-based logging checks in the C++ codeMarijn Haverbeke2011-04-071-24/+21
| | | | | No functions should be called for log statements that turn out to be inactive.
* Change log buffer butes to a symbolic const in runtime.Graydon Hoare2011-01-141-2/+2
|
* Fixed deadlock caused by the message pump not being notified of new message ↵Michael Bebenita2010-09-161-1/+1
| | | | sends.
* Cleanup, refactoring, and some runtime tests.Michael Bebenita2010-09-101-65/+28
|
* Lots of design changes around proxies and message passing. Made it so that ↵Michael Bebenita2010-09-071-108/+13
| | | | domains can only talk to other domains via handles, and with the help of the rust_kernel.
* Added a few utility classes, cleaned up the include order of .h files, and ↵Michael Bebenita2010-09-071-19/+4
| | | | started to make the Rust kernel own domain message queues rather than the Rust domains themselves.
* Implemented an lock free queue based on this paper ↵Michael Bebenita2010-08-241-5/+7
| | | | http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf, the "lock free queue" we had before wasn't lock free at all.
* Added simple deadlock detection in the scheduler.Michael Bebenita2010-08-171-0/+27
|
* Lots of changes around memory managment in the Runtime. Added memory regions ↵Michael Bebenita2010-08-171-25/+55
| | | | and fixed race caused by calling rust_srv::malloc() from multiple threads when sending messages.
* Added labels to blocking conditions.Michael Bebenita2010-08-171-3/+4
|
* Putting out the burning tree on Windows. Turns out you can completely starve ↵Michael Bebenita2010-08-161-3/+3
| | | | threads by not yielding on windows/vmware, really weird.
* Added support for task sleeping in the scheduler.Michael Bebenita2010-08-111-5/+10
|
* Merge commit 'jyasskin/work'Graydon Hoare2010-08-101-33/+44
|\ | | | | | | | | | | 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-26/+40
| | | | | | | | | | 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-16/+2
| | | | | | | | 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-5/+12
| |
* | Some pretty printing in the runtime.Michael Bebenita2010-08-091-10/+22
| |
* | Made the runtime keep track of all live domains and print their state.Michael Bebenita2010-08-091-0/+15
|/
* 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-281-1/+30
| | | | 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-29/+39
| | | | notify_message, make them use proxies, cache task proxies in dom.
* Add rust_dom::log_state, for logging the running/blocked/dead vectors per ↵Michael Bebenita2010-07-281-0/+30
| | | | scheduling iteration.
* Fix typos in comments, delete obsolete comments and dead commented code.Michael Bebenita2010-07-281-2/+0
|
* 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-251-19/+0
| | | | those hacking on Sunday evening PST).
* Expose an RNG (the one used by our runtime) to Rust via std.Roy Frostig2010-07-251-25/+2
|
* Fix message formatting in runtime library.Graydon Hoare2010-07-201-1/+1
|
* Added a message passing system based on lock free queues for inter-thread ↵Michael Bebenita2010-07-191-13/+162
| | | | communication. Channels now buffer on the sending side, and no longer require blocking when sending. Lots of other refactoring and bug fixes.
* Populate tree.Graydon Hoare2010-06-231-0/+271