| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2013-08-19 | Try to fix mac valgrind bot by disabling thread-heavy activities. | Graydon Hoare | -0/+10 | |
| 2013-08-12 | Fix select() in light of the deschedule...and then race. Close #8347. | Ben Blum | -1/+3 | |
| 2013-08-12 | Reorganise Select traits to not expose internal runtime types. Close #5160. ↵ | Ben Blum | -6/+17 | |
| Pending #8215. | ||||
| 2013-08-09 | std: Fix perf of local allocations in newsched | Brian Anderson | -2/+2 | |
| 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-08 | auto merge of #8356 : toddaaro/rust/ws, r=brson | bors | -3/+4 | |
| This pull request converts the scheduler from a naive shared queue scheduler to a naive workstealing scheduler. The deque is still a queue inside a lock, but there is still a substantial performance gain. Fiddling with the messaging benchmark I got a ~10x speedup and observed massively reduced memory usage. There are still *many* locations for optimization, but based on my experience so far it is a clear performance win as it is now. | ||||
| 2013-08-08 | Enabled workstealing in the scheduler. Previously we had one global work ↵ | toddaaro | -3/+4 | |
| 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-07 | fix recv_ready for Port to take &self and not need to return a tuple. Close ↵ | Ben Blum | -4/+25 | |
| #8192. | ||||
| 2013-08-07 | core: option.map_consume -> option.map_move | Erick Tryzelaar | -2/+2 | |
| 2013-08-02 | Fix nasty double-free bug where a newrt chan could get killed after ↵ | Ben Blum | -2/+7 | |
| rescheduling but before suppressing_finalize. | ||||
| 2013-08-02 | Add SendDeferred trait and use it to fix #8214. | Ben Blum | -24/+127 | |
| 2013-08-02 | auto merge of #8195 : bblum/rust/task-cleanup, r=brson | bors | -9/+7 | |
| In the first commit it is obvious why some of the barriers can be changed to ```Relaxed```, but it is not as obvious for the once I changed in ```kill.rs```. The rationale for those is documented as part of the documenting commit. Also the last commit is a temporary hack to prevent kill signals from being received in taskgroup cleanup code, which could be fixed in a more principled way once the old runtime is gone. | ||||
| 2013-08-01 | fixed incorrect handling of returned scheduler option and restructed ↵ | toddaaro | -6/+2 | |
| scheduler functions slightly | ||||
| 2013-08-01 | minor tweaks - unboxed the coroutine so that it is no longer a ~ pointer ↵ | toddaaro | -0/+4 | |
| 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 | A major refactoring that changes the way the runtime uses TLS. In the | toddaaro | -2/+1 | |
| 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 | Make a forgotten assert in comm be cfg(test)-dependent | Ben Blum | -3/+1 | |
| 2013-08-01 | Relax some atomic barriers. Loosen up all that tension. There, doesn't that ↵ | Ben Blum | -6/+6 | |
| feel good? | ||||
| 2013-08-01 | std: Change `Times` trait to use `do` instead of `for` | blake2-ppc | -19/+19 | |
| 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-07-31 | auto merge of #8139 : brson/rust/rm-old-task-apis, r=pcwalton | bors | -7/+14 | |
| 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-30 | std::rt: Change Thread interface to require an explicit join | Brian Anderson | -7/+14 | |
| Makes it more obvious what's going on | ||||
| 2013-07-30 | Add a better-for-testing optimistic_check() for pipes with cfg(test). | Ben Blum | -1/+15 | |
| 2013-07-30 | Implement select() for new runtime pipes. | Ben Blum | -32/+134 | |
| 2013-07-29 | Optimize try_recv to not require the two context switches when data is ↵ | Ben Blum | -31/+34 | |
| available. | ||||
| 2013-07-29 | Remove ChanOneHack/PortOneHack extra allocation | Ben Blum | -50/+30 | |
| 2013-07-20 | auto merge of #7910 : brson/rust/rm-fixme, r=graydon | bors | -5/+0 | |
| 2013-07-20 | Enable taskgroup code for newsched spawns. | Ben Blum | -2/+8 | |
| 2013-07-20 | Change the HOF context switchers to pass a BlockedTask instead of a ~Task. | Ben Blum | -14/+18 | |
| 2013-07-19 | std::rt: Remove an obsolete FIXME. #7757 | Brian Anderson | -5/+0 | |
| 2013-07-03 | Merge remote-tracking branch 'mozilla/master' | Brian Anderson | -15/+15 | |
| 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-01 | Refactored the runtime to view coroutines as a component of tasks, instead ↵ | toddaaro | -4/+8 | |
| of tasks as a component of coroutines. | ||||
| 2013-06-28 | librustc: Change "Owned" to "Send" everywhere | Patrick Walton | -5/+5 | |
| 2013-06-25 | Change finalize -> drop. | Luqman Aden | -2/+2 | |
| 2013-06-24 | std: Make box annihilator work with newsched | Brian Anderson | -12/+0 | |
| 2013-06-16 | Merge remote-tracking branch 'brson/io' | Brian Anderson | -19/+322 | |
| 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-13 | automated whitespace fixes | Daniel Micay | -1/+0 | |
| 2013-06-10 | debugged a compiler ICE when merging local::borrow changes into the main io ↵ | toddaaro | -2/+2 | |
| branch and modified the incoming new file lang.rs to be api-compatible | ||||
| 2013-06-06 | std::rt: Fix stream test to be parallel | Brian Anderson | -4/+4 | |
| 2013-06-06 | std: Fix stage0 build | Brian Anderson | -0/+12 | |
| Conflicts: src/libstd/rt/comm.rs | ||||
| 2013-06-05 | core::rt: Add `MegaPipe`, an unbounded, multiple producer/consumer, ↵ | Brian Anderson | -0/+71 | |
| lock-free queue | ||||
| 2013-06-05 | core::rt: Add SharedPort | Brian Anderson | -0/+132 | |
| 2013-06-05 | core::rt: Implement SharedChan | Brian Anderson | -3/+64 | |
| 2013-06-05 | std::rt: Use AtomicUint instead of intrinsics in comm | Brian Anderson | -9/+9 | |
| 2013-06-04 | std::cell: Modernize constructors | Philipp Brüschweiler | -16/+16 | |
| Part of #3853 | ||||
| 2013-05-30 | core::rt: deny(unused_imports, unused_mut, unused_variable) | Brian Anderson | -1/+0 | |
| 2013-05-30 | core::rt: Begin recording scheduler metrics | Brian Anderson | -6/+17 | |
| 2013-05-29 | Merge remote-tracking branch 'brson/io' into incoming | Brian Anderson | -3/+20 | |
| Conflicts: src/libstd/rt/sched.rs | ||||
| 2013-05-23 | cleanup warnings from libstd | Erick Tryzelaar | -1/+1 | |
| 2013-05-22 | libstd: Fix merge fallout. | Patrick Walton | -0/+618 | |
