about summary refs log tree commit diff
path: root/src/rt
AgeCommit message (Collapse)AuthorLines
2012-02-09rt: Add upcall_call_shim_on_rust_stackBrian Anderson-3/+67
2012-02-09rt: Use rust_task_thread's C-stack pool for native callsBrian Anderson-28/+96
2012-02-09rt: Add methods to rust_task_thread for borrowing C stacksBrian Anderson-1/+40
2012-02-09rt: Move more setup code into create_stackBrian Anderson-3/+4
2012-02-09rt: Add rust_task::call_on_c_stackBrian Anderson-7/+24
2012-02-09rt: Rename call_shim_on_c_stack to call_and_change_stacksBrian Anderson-5/+5
2012-02-09rt: Make rust_task::ref_count privateBrian Anderson-2/+4
2012-02-09rt: Add constructors and destructors for stacksBrian Anderson-3/+21
2012-02-09rt: Move some stack manipulation functions into rust_taskBrian Anderson-137/+136
2012-02-09rt: Rename new_stack to next_stack, del_stack to prev_stackBrian Anderson-8/+12
2012-02-09rt: Remove rust_task::rust_spBrian Anderson-4/+1
2012-02-09rt: Remove rust_task_user structBrian Anderson-36/+25
2012-02-09rt: Remove unused builtinsBrian Anderson-30/+0
2012-02-09rt: Add a function for configuring task notificationBrian Anderson-0/+19
2012-02-09rt: Begin moving stack-building functions to rust_stack.cppBrian Anderson-53/+66
2012-02-09rt: Remove unused context functionsBrian Anderson-28/+0
2012-02-09fix build on freebsdJyun-Yan You-1/+17
2012-02-08core: Add a test for blocking in native codeBrian Anderson-0/+46
2012-02-08core: Add task::spawn_schedBrian Anderson-1/+1
This function creates a new scheduler with a specified number of threads and immediately executes a task on it. The scheduler is configured to terminate when the task dies. This is the minimum API necessary to enable blocking C calls.
2012-02-08rt: Export a scheduler APIBrian Anderson-3/+36
2012-02-08rt: Hold schedulers in a mapBrian Anderson-10/+58
2012-02-08rt: Change the lifecycle of tasks and schedulers for various reasonsBrian Anderson-23/+66
This is in preparation for giving schedulers their own life cycle separate from the kernel. Tasks must be deleted before their scheduler thread, so we can't let the scheduler exit before all its tasks have been cleaned up. In this scheme, the scheduler will unregister tasks with the kernel when they are reaped, then drop their ref on the task (there may still be others). When the task ref count hits zero, the task will request to be unregistered from the scheduler, which is responsible for deleting the task. Instead of having the kernel tell the scheduler to exit, let the scheduler decide when to exit. For now it will exit when all of its tasks are unregistered.
2012-02-08rt: Start schedulers immediately upon creationBrian Anderson-8/+6
2012-02-08rt: Refactor the rust_kernel interface a bitBrian Anderson-26/+36
2012-02-08rt: Introduce scheduler idsBrian Anderson-4/+10
2012-02-08rt: Delete schedulers immediately upon releaseBrian Anderson-5/+6
This will be needed once we support dynamically changing schedulers.
2012-02-08rt: Change the scheme used for terminating the kernelBrian Anderson-11/+58
Instead of joining on the scheduler threads, instead keep a count of active schedulers. When there are no more schedulers raise a signal for the main thread to continue. This will be required once schedulers can be added and removed from the running kernel.
2012-02-08rt: Remove is_running flag from rust_thread. UnusedBrian Anderson-12/+1
2012-02-08rt: Remove rust_scheduler::rval. UnusedBrian Anderson-1/+0
2012-02-08deprecate old style box shape stringsNiko Matsakis-1/+11
2012-02-08fix bug that causes premature pops from obstackNiko Matsakis-9/+21
basically, the alignment step did not check if it walked off the end of the buffer
2012-02-08make shape code use the tydesc found in the box, not the shape strNiko Matsakis-46/+88
2012-02-07rt: Don't ignore result of chdir. Fail hard for now with a FIXMEBrian Anderson-1/+5
My gcc won't let the result of this function be ignored.
2012-02-07Make process-spawning take environments and working directories, remove ↵Graydon Hoare-14/+89
procsrv task from compiletest.
2012-02-07made leak an intrinsic to avoid a c-call. added memmove and memcpy intrinsicsMagnus Auvinen-0/+73
2012-02-07Stop storing cmp glue in tydescsMarijn Haverbeke-5/+2
There's no such thing anymore, we can simply call upcalls.cmp_type.
2012-02-07Reuse monomorphized functions for different box typesMarijn Haverbeke-0/+1
The free glue for opaque boxes will pick the actual tydesc out of the box, and call its glue. Issue #1736
2012-02-06Revert "log to stderr instead of stdout"Brian Anderson-1/+5
This is causing mysterious hangs on windows. Issue #1769. This reverts commit d65eabd5de4c41e4bc93b9c6c03d6278299ceb76.
2012-02-05Adding str::reserveKevin Cantu-0/+8
2012-02-05Making vec::reserve reserve precisely the size given (untested)Kevin Cantu-6/+8
2012-02-04rt: Expand rust_kernel::live_tasks to a uintptr_tBrian Anderson-3/+3
2012-02-04rt: Stop using atomic ops on rust_kernel::live_tasksBrian Anderson-5/+8
These ops are all done within spitting distance of a suitable lock, so just protect it with the lock.
2012-02-03rt: Make isaac_init not a templateBrian Anderson-19/+12
2012-02-03rt: Remove some silly locks in rust_schedulerBrian Anderson-4/+0
2012-02-03rt: Add sanity checks when we hit the max task/port idBrian Anderson-0/+2
2012-02-03rt: Clean up the way the kernel tracks tasksBrian Anderson-42/+49
2012-02-03rt: Do all task creation through a schedulerBrian Anderson-15/+10
2012-02-03rt: Create new tasks through the current thread's schedulerBrian Anderson-1/+1
2012-02-03rt: Add a field to rust_task to hold its schedulerBrian Anderson-2/+3
2012-02-03rt: Extract rust_scheduler from rust_task_threadBrian Anderson-112/+180