Niko Matsakis
0479d946c8
Add externfn macro and correctly label fixed_stack_segments
2013-08-19 07:13:15 -04:00
Huon Wilson
72fd02d939
doc: convert remaining uses of core:: to std::.
2013-08-16 15:54:14 +10:00
bors
9f379329db
auto merge of #8475 : kmcallister/rust/stack_segment, r=brson,brson
...
Servo needs to tell SpiderMonkey about the stack bounds.
r? @brson
2013-08-13 14:57:24 -07:00
Keegan McAllister
4fd5318594
Make rt::stack public
...
Fixes #8478 .
2013-08-13 09:10:07 -07:00
Ben Blum
c8c09d40fc
Reorganise Select traits to not expose internal runtime types. Close #5160 . Pending #8215 .
2013-08-12 13:54:21 -04:00
Erick Tryzelaar
4062b84f4a
std: merge Iterator and IteratorUtil
2013-08-10 07:02:17 -07:00
Erick Tryzelaar
fad7857c7b
Mass rename of .consume{,_iter}() to .move_iter()
...
cc #7887
2013-08-10 07:01:07 -07:00
Brian Anderson
b75915d0ca
Remove the C++ runtime. Sayonara
2013-08-09 16:45:50 -07:00
Brian Anderson
d392556160
std: Fix perf of local allocations in newsched
...
Mostly optimizing TLS accesses to bring local heap allocation performance
closer to that of oldsched. It's not completely at parity but removing the
branches involved in supporting oldsched and optimizing pthread_get/setspecific
to instead use our dedicated TCB slot will probably make up for it.
2013-08-09 01:15:31 -07:00
toddaaro
af2e03998d
Enabled workstealing in the scheduler. Previously we had one global work queue shared by each scheduler. Now there is a separate work queue for each scheduler, and work is "stolen" from other queues when it is exhausted locally.
2013-08-08 14:13:41 -07:00
Brian Anderson
ae1ed4fd78
std: Allow spawners to specify stack size
2013-08-07 15:40:27 -07:00
Brian Anderson
f82da818a7
std::rt: Pull RUST_MIN_STACK from the environment
2013-08-07 15:40:27 -07:00
Marvin Löbel
0ac7a219f0
Updated std::Option, std::Either and std::Result
...
- Made naming schemes consistent between Option, Result and Either
- Changed Options Add implementation to work like the maybe monad (return None if any of the inputs is None)
- Removed duplicate Option::get and renamed all related functions to use the term `unwrap` instead
2013-08-05 22:42:21 +02:00
Brian Anderson
2f8346b949
std::rt: Remove the test for context()
...
This is no longer testable once newsched is turned on
2013-08-04 15:11:56 -07:00
Daniel Micay
1008945528
remove obsolete foreach
keyword
...
this has been replaced by `for`
2013-08-03 22:48:02 -04:00
toddaaro
1d82fe5aea
fixed incorrect handling of returned scheduler option and restructed scheduler functions slightly
2013-08-01 15:18:29 -07:00
toddaaro
a5f55b3ead
minor tweaks - unboxed the coroutine so that it is no longer a ~ pointer inside the task struct, and also added an assert to verify that send is never called inside scheduler context as it is undefined (BROKEN) if that happens
2013-08-01 15:17:19 -07:00
toddaaro
f7eed22387
A major refactoring that changes the way the runtime uses TLS. In the
...
old design the TLS held the scheduler struct, and the scheduler struct
held the active task. This posed all sorts of weird problems due to
how we wanted to use the contents of TLS. The cleaner approach is to
leave the active task in TLS and have the task hold the scheduler. To
make this work out the scheduler has to run inside a regular task, and
then once that is the case the context switching code is massively
simplified, as instead of three possible paths there is only one. The
logical flow is also easier to follow, as the scheduler struct acts
somewhat like a "token" indicating what is active.
These changes also necessitated changing a large number of runtime
tests, and rewriting most of the runtime testing helpers.
Polish level is "low", as I will very soon start on more scheduler
changes that will require wiping the polish off. That being said there
should be sufficient comments around anything complex to make this
entirely respectable as a standalone commit.
2013-08-01 15:14:00 -07:00
blake2-ppc
78cde5b9fb
std: Change Times
trait to use do
instead of for
...
Change the former repetition::
for 5.times { }
to::
do 5.times { }
.times() cannot be broken with `break` or `return` anymore; for those
cases, use a numerical range loop instead.
2013-08-01 16:54:22 +02:00
bors
18d124b9b5
auto merge of #8158 : bblum/rust/task-cleanup, r=brson
...
r? @brson
2013-08-01 06:01:39 -07:00
Daniel Micay
1fc4db2d08
migrate many for
loops to foreach
2013-08-01 05:34:55 -04:00
Ben Blum
2e6dc161b6
Give tasks useful names. #2891
2013-07-31 14:37:22 -04:00
bors
8b7e241e02
auto merge of #8139 : brson/rust/rm-old-task-apis, r=pcwalton
...
This removes a bunch of options from the task builder interface that are irrelevant to the new scheduler and were generally unused anyway. It also bumps the stack size of new scheduler tasks so that there's enough room to run rustc and changes the interface to `Thread` to not implicitly join threads on destruction, but instead require an explicit, and mandatory, call to `join`.
2013-07-31 02:10:24 -07:00
Brian Anderson
0144c83213
std::rt: Change Thread interface to require an explicit join
...
Makes it more obvious what's going on
2013-07-30 14:23:44 -07:00
Ben Blum
f34fadd126
Implement select() for new runtime pipes.
2013-07-30 13:19:25 -04:00
bors
3078e83c3f
auto merge of #8076 : omasanori/rust/cleanup, r=huonw
...
A cleanup suggested on #7922 .
2013-07-27 20:13:22 -07:00
Brian Anderson
34a27db8bf
std::rt: Add start_on_main_thread function
...
Applications that need to use the GUI can override start and set up the runtime using
this function.
2013-07-27 17:36:14 -07:00
OGINO Masanori
8d654fc41d
Remove unnecessary #[path = "***/mod.rs"] lines.
...
Fixes #7922 .
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2013-07-27 15:53:30 +09:00
Patrick Walton
06594ed96b
librustc: Remove pub extern
and priv extern
from the language.
...
Place `pub` or `priv` on individual items instead.
2013-07-20 17:39:38 -07:00
Ben Blum
9ad1997549
Change the HOF context switchers to pass a BlockedTask instead of a ~Task.
2013-07-20 05:08:57 -04:00
Ben Blum
afc199bea0
Remove join_latch
2013-07-20 05:08:56 -04:00
Ben Blum
6882508b6f
Add kill::Death for task death services and use it in Task.
2013-07-20 05:08:56 -04:00
Ben Blum
52ca256d7b
Add KillHandle and implement exit code propagation to replace join_latch
2013-07-20 05:08:56 -04:00
Brian Anderson
07e52eb7fc
std: Make os::set_exit_status work with newsched
2013-07-09 13:29:05 -07:00
Brian Anderson
1098d6980b
Merge remote-tracking branch 'mozilla/master'
...
Conflicts:
src/libextra/test.rs
src/libstd/at_vec.rs
src/libstd/cleanup.rs
src/libstd/rt/comm.rs
src/libstd/rt/global_heap.rs
src/libstd/task/spawn.rs
src/libstd/unstable/lang.rs
src/libstd/vec.rs
src/rt/rustrt.def.in
src/test/run-pass/extern-pub.rs
2013-07-03 14:49:13 -07:00
toddaaro
5cfad4b6de
Refactored the runtime to view coroutines as a component of tasks, instead of tasks as a component of coroutines.
2013-07-01 16:14:56 -07:00
Brian Anderson
e65d0cbabe
extra: Make test runner compatible with newsched
2013-06-24 17:07:03 -07:00
Brian Anderson
d071f51cdc
std::rt: deny(unused_unsafe)
2013-06-24 17:07:03 -07:00
Brian Anderson
5e7c5d6c3d
std: Make box annihilator work with newsched
2013-06-24 17:07:03 -07:00
Brian Anderson
a09972db35
std: Move dynamic borrowck code from unstable::lang to rt::borrowck
2013-06-24 17:07:03 -07:00
Brian Anderson
1b7c99655f
std::rt: Support os::args
2013-06-21 14:42:15 -07:00
Brian Anderson
5086c0850e
std::rt: Update GC metadata in init
2013-06-19 16:08:07 -07:00
Brian Anderson
e1555f9b56
std::rt: Document and cleanup the run function
2013-06-19 01:13:56 -07:00
Brian Anderson
5722c953e5
std::rt: Correct the numbers of default cores
2013-06-19 00:49:05 -07:00
Brian Anderson
915aaa7f67
std::rt: Set the process exit code
2013-06-19 00:39:10 -07:00
Brian Anderson
5b2dc52034
std::rt: Turn on multithreaded scheduling
2013-06-18 00:17:14 -07:00
Brian Anderson
9ef4c413a8
std::rt: Check exchange count on exit
2013-06-17 23:18:20 -07:00
Brian Anderson
3281f5b637
std::rt: Add util mod and num_cpus function
2013-06-17 22:17:51 -07:00
Brian Anderson
319cf6e465
Merge remote-tracking branch 'brson/io'
...
Conflicts:
src/libstd/rt/comm.rs
src/libstd/rt/mod.rs
src/libstd/rt/sched.rs
src/libstd/rt/task.rs
src/libstd/rt/test.rs
src/libstd/rt/tube.rs
src/libstd/rt/uv/uvio.rs
src/libstd/rt/uvio.rs
src/libstd/task/spawn.rs
2013-06-16 15:09:25 -07:00
Brian Anderson
3208fc36bf
Merge remote-tracking branch 'brson/io-wip' into io
...
Conflicts:
src/libstd/rt/sched.rs
src/libstd/rt/task.rs
src/libstd/rt/test.rs
src/libstd/task/mod.rs
src/libstd/task/spawn.rs
2013-06-15 19:31:46 -07:00