about summary refs log tree commit diff
path: root/src/rt/rust_builtin.cpp
AgeCommit message (Collapse)AuthorLines
2012-04-03std: 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-03Merge remote-tracking branch 'brson/mainthread'Brian Anderson-0/+6
Conflicts: src/rt/rust_kernel.cpp src/rt/rust_scheduler.cpp src/rt/rust_scheduler.h
2012-04-03Refactor includes structure, getting rid of rust_internal.hJon Morton-1/+1
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-03core: Add a scheduler mode, osmain, to spawn onto the main schedulerBrian Anderson-0/+6
2012-04-02Add global rust_get_current_taskJon Morton-34/+34
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-01replace assertion macros with plain assertsJon Morton-12/+6
2012-03-31rt: Rename rust_task_thread to rust_sched_loopBrian Anderson-47/+47
This class no longer represents a thread; it just schedules tasks.
2012-03-20Some tests for passing and returning structures by value on x64. Close ↵Graydon Hoare-0/+37
#1402. Close #1970.
2012-03-15core: Channels are just port idsBrian Anderson-6/+4
2012-03-15rt: Remove remaining uses of rust_kernel::get_task_by_idBrian Anderson-13/+5
2012-03-15rt: Look up ports through a single port tableBrian Anderson-13/+6
Instead of a two-level lookup, just use one big table
2012-03-06rt: Change the rust_port refcounting scheme to avoid racesBrian Anderson-1/+0
Hopefully...
2012-03-05rt: Add a hack to fix a port detach bugBrian Anderson-1/+5
2012-03-05rt: Fix the atomic get_ref_count method to avoid racesBrian Anderson-5/+1
2012-03-05rt: Properly block tasks while waiting for port detachBrian Anderson-4/+9
2012-03-05rt: Make rust_port_detach less contentiousBrian Anderson-2/+1
It still utterly dominates some benchmarks with busy waiting, but at least it doesn't create lock contention while doing so.
2012-03-05rt: Move receive code into rust_portBrian Anderson-23/+1
2012-03-05rt: Simplify the recv interfaceBrian Anderson-10/+1
2012-03-05rt: Move some code from rust_port_detach into rust_port::detachBrian Anderson-6/+0
2012-03-05rt: Renome rust_task::lock to port_lockBrian Anderson-2/+2
2012-03-05Remove dead code from rt (debug_obj, rust_obj, rust_closure, rust_box_obj, ↵Graydon Hoare-22/+0
rust_vtable)
2012-03-02rt: Port ref counts are protected by the task lock. Ick.Brian Anderson-1/+1
2012-03-02retool inline encoding to handle methods, fix testsNiko Matsakis-5/+0
2012-02-29add the ability to snag the frame so we can verify that we are inliningNiko Matsakis-0/+6
2012-02-20core: New task APIBrian Anderson-0/+9
2012-02-18rt: rename nano_time() builtin to match time::precise_time_ns()Chris Peterson-1/+1
2012-02-18std: Fix Windows system time conversion for get_time()Chris Peterson-11/+14
2012-02-16rt: Add rust_port_select functionBrian Anderson-0/+8
2012-02-14rt: Don't kill tasks while they are in a callback from CBrian Anderson-1/+1
2012-02-14rustc: Translate crust functionsBrian Anderson-2/+2
2012-02-14rt: Add a Rust callback debugging functionBrian Anderson-0/+7
2012-02-09rt: Remove rust_task_user structBrian Anderson-1/+1
2012-02-09rt: Remove unused builtinsBrian Anderson-26/+0
2012-02-09rt: Add a function for configuring task notificationBrian Anderson-0/+10
2012-02-09fix build on freebsdJyun-Yan You-0/+4
2012-02-08core: Add a test for blocking in native codeBrian Anderson-0/+40
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-1/+28
2012-02-07Make process-spawning take environments and working directories, remove ↵Graydon Hoare-0/+47
procsrv task from compiletest.
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-05Adding str::reserveKevin Cantu-0/+7
2012-02-05Making vec::reserve reserve precisely the size given (untested)Kevin Cantu-1/+1
2012-02-03rt: Make isaac_init not a templateBrian Anderson-1/+1
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-1/+1
2012-02-03rt: Extract rust_scheduler from rust_task_threadBrian Anderson-1/+2
2012-02-03rt: Rename rust_scheduler to rust_task_threadBrian Anderson-36/+36
2012-02-03Remove experimental GC codeMarijn Haverbeke-5/+0
It's been sitting unused long enough to have bitrotted completely.
2012-02-02rt: Remove task pinning. Does nothingBrian Anderson-12/+0
2012-02-02rt: Rename task_sleep intrinsic to task_yield. Remove usec paramBrian Anderson-2/+2