Eric Holk
49a8cb34d2
Removed dom_owned, splitting things between task_owned and kernel_owned. Had to re-xfail a few tests brson recently un-xfailed.
2011-06-28 16:12:33 -07:00
Eric Holk
f6f945fed5
Moved thread management to rust_kernel.
2011-06-28 16:12:33 -07:00
Eric Holk
6367bcf427
Fixed a few concurrency bugs. Still not perfect, but overall it seems much more reliable.
2011-06-27 09:58:39 -07:00
Eric Holk
4bc773465f
Basic multithreading support. The infinite loops test successfully maxes out the CPU.
2011-06-27 09:58:39 -07:00
Eric Holk
67360ae618
Fixed a problem where spawn arguments were getting lost again. Also, fixed up stack alignment, which closes #496
2011-06-15 18:16:59 -07:00
Eric Holk
d1857d30fc
This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).
...
This commit also moves yield and join to the standard library, as requested in #42 . Join is currently a no-op though.
2011-06-13 18:14:13 -07:00
Graydon Hoare
79c9e13073
More delicious dead code removal from runtime, upcalls.
2011-05-26 18:21:02 -07:00
Rafael Ávila de Espíndola
fe90159b86
"constant propagate" rust_new_exit_task_glue to its only use.
2011-05-24 15:51:22 -04:00
Rafael Ávila de Espíndola
cebc9b359d
Remove dead rustboot code.
2011-05-18 13:48:57 -04:00
Rafael Ávila de Espíndola
a3ff02f126
Split start into rustc and rustboot versions. This introduces a bit of
...
duplication, but we will hopefully drop the rustboot one soon.
This is also a preparation for changing the rustc one to have the activate glue
return to the exit glue which will then call the main function.
This (returning to the function that calls main) matches what happens when
loader stats a program or a new thread. It lets gdb produce good backtraces
and should help with EH too.
2011-05-03 10:24:18 -04:00
Marijn Haverbeke
880be6a940
Overhaul logging system in runtime
...
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
2011-04-19 16:57:13 +02:00
Graydon Hoare
af4d6ae76b
Add ABI tagging to crates, adjust rustc output and runtime stack-frame setup so access to argv works.
2011-02-22 16:37:27 -08:00
Patrick Walton
94cec74096
Try to print backtraces on failure
2010-10-11 16:40:18 -07:00
Michael Bebenita
a493350eb5
Cleanup, refactoring, and some runtime tests.
2010-09-10 14:38:31 -07:00
Michael Bebenita
743ca289b6
Cache task handles.
2010-09-08 21:25:16 -07:00
Michael Bebenita
de611a3090
Lots of design changes around proxies and message passing. Made it so that domains can only talk to other domains via handles, and with the help of the rust_kernel.
2010-09-07 18:44:12 -07:00
Michael Bebenita
e20752de68
Added labels to blocking conditions.
2010-08-17 23:49:57 -07:00
Michael Bebenita
988695a96c
Added support for task sleeping in the scheduler.
2010-08-11 21:24:04 -07:00
Jeffrey Yasskin
b71340552f
Add names to tasks and domains. These can either be an explicit literal string
...
after the "spawn" keyword, or implicitly the call expression used to start the
spawn.
2010-08-09 11:43:16 +02:00
Michael Bebenita
4246d567b7
Move ports out into their own file, add data_message and make communication system use it (and proxies) instead of existing token scheme.
2010-07-28 20:30:29 -07:00
Michael Bebenita
4ff8e15128
Move notification-messages out into their own file and unify into notify_message, make them use proxies, cache task proxies in dom.
2010-07-28 20:30:29 -07:00
Michael Bebenita
defd8a66ea
Rename rust_proxy_delegate to maybe_proxy, flesh out logic in it. Add strong-ref distinction on rust_proxy.
2010-07-28 20:30:29 -07:00
Michael Bebenita
9fe4b0d404
Add modeline / file-local emacs var blocks.
2010-07-28 20:30:29 -07:00
Michael Bebenita
06b52b70db
Fix typos in comments, delete obsolete comments and dead commented code.
2010-07-28 20:30:29 -07:00
Michael Bebenita
00d1465d13
Added a message passing system based on lock free queues for inter-thread communication. Channels now buffer on the sending side, and no longer require blocking when sending. Lots of other refactoring and bug fixes.
2010-07-19 14:05:18 -07:00