| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2012-04-03 | std: add localtime/gmtime support. | Erick Tryzelaar | -0/+127 | |
| 2012-04-03 | std: fix a typo. | Erick Tryzelaar | -1/+1 | |
| 2012-04-03 | std: change timeval to ns resolution timespec | Erick Tryzelaar | -4/+11 | |
| This lets us use the more precise clock_gettime on posix machines. | ||||
| 2012-04-03 | std: change time::timeval to be {sec: i64, usec: i32}. | Erick Tryzelaar | -2/+2 | |
| It's possible to have negative times if expressing time before 1970, so we should use signed types. Other platforms can return times at a higher resolution, so we should use 64 bits. | ||||
| 2012-04-03 | Merge remote-tracking branch 'brson/mainthread' | Brian Anderson | -28/+167 | |
| Conflicts: src/rt/rust_kernel.cpp src/rt/rust_scheduler.cpp src/rt/rust_scheduler.h | ||||
| 2012-04-03 | rt: Fix bugs in the osmain scheduler | Brian Anderson | -6/+13 | |
| 2012-04-03 | rt: Fix bugs in the osmain scheduler | Brian Anderson | -1/+20 | |
| 2012-04-03 | rt: Include the correct header for alloca on windows | Brian Anderson | -4/+4 | |
| 2012-04-03 | rt: alloca is spelled differently on win32 | Brian Anderson | -0/+4 | |
| 2012-04-03 | rt: Fix the 0 bytes lost issue | Brian Anderson | -0/+16 | |
| This is a workaround for #1815. libev uses realloc(0) to free the loop, which valgrind doesn't like. We have suppressions to make valgrind ignore them. Valgrind also has a sanity check when collecting allocation backtraces that the stack pointer must be at least 512 bytes into the stack (at least 512 bytes of frames must have come before). When this is not the case it doesn't collect the backtrace. Unfortunately, with our spaghetti stacks that valgrind check triggers sometimes and we don't get the backtrace for the realloc(0), it fails to be suppressed, and it gets reported as 0 bytes lost from a malloc with no backtrace. This fixes the issue by alloca'ing 512 bytes before calling uv_loop_delete | ||||
| 2012-04-03 | rt: Futz with headers to satisfy FreeBSD | Brian Anderson | -3/+2 | |
| 2012-04-03 | fix 'I don't know how C works' | Jon Morton | -1/+5 | |
| 2012-04-03 | actually remove memory.h; include cleanups | Jon Morton | -21/+4 | |
| 2012-04-03 | Refactor includes structure, getting rid of rust_internal.h | Jon Morton | -412/+311 | |
| Many changes to code structure are included: - removed TIME_SLICE_IN_MS - removed sychronized_indexed_list - removed region_owned - kernel_owned move to kernel.h, task_owned moved to task.h - global configs moved to rust_globals.h - changed #pragma once to standard guard in rust_upcall.h - got rid of memory.h | ||||
| 2012-04-03 | core: Add a scheduler mode, osmain, to spawn onto the main scheduler | Brian Anderson | -0/+9 | |
| 2012-04-02 | Construct new strings through upcalls. | Graydon Hoare | -0/+22 | |
| 2012-04-02 | rt: Run a single-threaded scheduler on the main thread | Brian Anderson | -21/+57 | |
| 2012-04-02 | rt: Add an assert to rust_get_current_task | Brian Anderson | -0/+1 | |
| 2012-04-02 | remove unneeded assert, move get_task_tls to sched_loop | Jon Morton | -27/+27 | |
| 2012-04-02 | Add global rust_get_current_task | Jon Morton | -101/+88 | |
| Previously two methods existed: rust_sched_loop::get_task and rust_task::get_task_from_tcb. Merge both of them into one, trying the faster one (tcb) first, and if that fails, the slower one from the tls. | ||||
| 2012-04-02 | rt: cleanup passing around of rust_env | Jon Morton | -11/+7 | |
| 2012-04-01 | rt: rust_env is a struct | Brian Anderson | -1/+1 | |
| 2012-04-01 | rt: Assert things that are true | Brian Anderson | -1/+1 | |
| 2012-04-01 | rt: Convert an old warning to an assert | Brian Anderson | -5/+1 | |
| 2012-04-01 | remove rust_srv | Jon Morton | -173/+44 | |
| 2012-04-01 | replace assertion macros with plain asserts | Jon Morton | -124/+100 | |
| 2012-04-01 | rt: Introduce rust_manual_sched_launcher_factory. Again, so sorry | Brian Anderson | -0/+18 | |
| 2012-04-01 | rt: Introduce rust_sched_launcher_factory. Sorry, I need one | Brian Anderson | -10/+31 | |
| 2012-04-01 | rt: Allow some schedulers to stay alive even without tasks to execute | Brian Anderson | -8/+26 | |
| 2012-04-01 | rt: Introduce rust_manual_sched_launcher | Brian Anderson | -1/+13 | |
| 2012-04-01 | rt: rust_sched_launcher needs a virtual destructor | Brian Anderson | -0/+1 | |
| 2012-04-01 | rt: rust_sched_launcher does not need a join() method | Brian Anderson | -1/+0 | |
| 2012-04-01 | Merge remote-tracking branch 'brson/mainthread' | Brian Anderson | -259/+545 | |
| Conflicts: src/rt/rust_sched_loop.cpp src/rt/rust_shape.cpp src/rt/rust_task.cpp | ||||
| 2012-03-31 | rt: Extract rust_thread_sched_launcher from rust_sched_launcher | Brian Anderson | -9/+26 | |
| 2012-03-31 | rt: Fix whitespace | Brian Anderson | -99/+109 | |
| 2012-03-31 | rt: Make rust_sched_launcher hide it's thread implementation | Brian Anderson | -10/+5 | |
| 2012-03-31 | rt: Add some more locking asserts to rust_sched_loop | Brian Anderson | -0/+2 | |
| 2012-03-31 | Revert "rt: Remove lock_held_by_current_thread" | Brian Anderson | -0/+83 | |
| Adds back the ability to make assertions about locks, but only under the --enable-debug configuration This reverts commit b247de64583e2ab527088813ba9192824554e801. Conflicts: src/rt/rust_sched_loop.cpp | ||||
| 2012-03-31 | rt: Extract start_main_loop from rust_sched_loop to rust_sched_driver | Brian Anderson | -32/+107 | |
| 2012-03-31 | rt: Introduce rust_sched_reaper | Brian Anderson | -7/+56 | |
| This just moves the responsibility for joining with scheduler threads off to a worker thread. This will be needed when we allow tasks to be scheduled on the main thread. | ||||
| 2012-03-31 | rt: Refactor the scheduler loop so that it can be driven from without | Brian Anderson | -20/+53 | |
| 2012-03-31 | rt: Rename rust_task_thread to rust_sched_loop | Brian Anderson | -189/+189 | |
| This class no longer represents a thread; it just schedules tasks. | ||||
| 2012-03-31 | rt: Extract rust_sched_launcher from rust_task_thread | Brian Anderson | -37/+70 | |
| rust_sched_launcher is actually responsible for setting up the thread and starting the loop. There will be other implementations that do not actually set up a new thread, in order to support scheduling tasks on the main OS thread. | ||||
| 2012-03-31 | initialize cur_thread, first task on thread 0 | Jon Morton | -2/+3 | |
| 2012-03-31 | Choose task thread in rust_scheduler by round robin | Jon Morton | -14/+15 | |
| Remove the random context from rust_scheduler and use a simple round robin system to choose which thread a new task gets put on. Also, some incorrect tab indents around scoped blocks were fixed. | ||||
| 2012-03-29 | rt: Track backtraces of all allocations with RUSTRT_TRACK_ALLOCATIONS=3 | Brian Anderson | -0/+22 | |
| 2012-03-29 | rt: Make the CC sweep use the box annihilator | Brian Anderson | -190/+7 | |
| 2012-03-29 | rt: Make the box annihilator walk and delete contents | Brian Anderson | -1/+194 | |
| 2012-03-29 | rt: For now, only run the box annihilator after task failure | Brian Anderson | -6/+14 | |
| 2012-03-29 | rustc: Only invoke when there are cleanups | Brian Anderson | -1/+0 | |
