summary refs log tree commit diff
path: root/src/rt/rust_upcall.cpp
AgeCommit message (Collapse)AuthorLines
2011-07-21Improving move semantics for channel operations.Eric Holk-1/+1
This lets us un-XFAIL task-comm-10.rs.
2011-07-21Lots of work on memory tracking and channels.Eric Holk-14/+24
We're trying to get closer to doing correct move semantics for channel operations. This involves a lot of cleanup (such as removing the unused sched parameter from rust_vec constructor) and making circular_buffer kernel_owned. Added tagging for memory allocations. This means we give a string tag to everything we allocate. If we leak something and TRACK_ALLOCATIONS is enabled, then it's much easier now to tell exactly what is leaking.
2011-07-15rustc: Implement interior string logging in DPSPatrick Walton-0/+10
2011-07-14Modify upcall_fail so that failing tasks relinquish control to the schedulerBrian Anderson-0/+3
This is sufficient to let unsupervised tasks that don't allocate fail without crashing or leaking.
2011-07-13Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases.Graydon Hoare-6/+5
2011-07-13Remove 'Nop.' comments, add emacs lines, remove obsolete file.Graydon Hoare-1/+0
2011-07-13Fix compile-command lines in rt.Graydon Hoare-1/+1
2011-07-13Remove obsolete nargs counts from runtime.Graydon Hoare-6/+6
2011-07-13Attempt to correct buggy win32 timer code (causing tinderbox failures).Graydon Hoare-2/+2
2011-07-12rt: Remove the locks around upcall_shared_malloc and upcall_shared_freePatrick Walton-2/+1
2011-07-10rt: Remove the now-unused upcall_ivec_resize and upcall_ivec_spill, which ↵Patrick Walton-40/+0
allocated from the wrong heap
2011-07-07Work on debugging race conditions.Eric Holk-17/+26
Ports and channels have been moved to the kernel pool, since they've been known to outlive their associated task. This probably isn't the right thing to do, the life cycle needs fixed instead. Some refactorying in memory_region.cpp. Added a helper function to increment and decrement the allocation counter. This makes it easier to switch between atomic and non-atomic increments. Using atomic increments for now, although this still does not fix the problem.
2011-07-07Removing most of the locks in rust_upcall.cpp and elsewhere.Eric Holk-51/+38
2011-07-06Allocate rust_ivec buffers out of the kernel poolRob Arnold-0/+72
The duplication of upcalls is due to the fact that the runtime is shared between stage0/rustc and stage1/rustc. Once snapshots are updated, they should be de-duplicated.
2011-07-06rt: Add a stack check to upcall_get_type_descPatrick Walton-0/+17
2011-07-01Move the channel destroy code into rust_chan.Rob Arnold-29/+1
This lets native code more easily destroy channels since directly deleting a channel is not always the right way to destroy it.
2011-07-01Move channel cloning logic into a method on rust_chan.Rob Arnold-15/+1
This will allow us to more easily clone channels from native code.
2011-06-30rt: Add room for the new fill slot when resizing interior vectorsPatrick Walton-1/+1
2011-06-29Re-enable tidy (it was broken) and fix various non-tidy things.Graydon Hoare-1/+2
2011-06-29rt: Remove the lock around upcall_vec_append. Add a test case. Closes #156.Patrick Walton-1/+0
2011-06-28rustc: Move duplicate_heap_parts to copy glue; add a test casePatrick Walton-3/+2
2011-06-28rustc: Rename take glue to copy gluePatrick Walton-3/+4
2011-06-28Re-enabling some tests.Eric Holk-2/+2
2011-06-28Renamed what's left of rust_dom to rust_schedulerEric Holk-34/+34
2011-06-28Removed dom_owned, splitting things between task_owned and kernel_owned. Had ↵Eric Holk-4/+3
to re-xfail a few tests brson recently un-xfailed.
2011-06-28Moved thread management to rust_kernel.Eric Holk-19/+19
2011-06-28There is only one domain per kernel now.Eric Holk-80/+0
2011-06-27Properly handle the case where src==dst but we have to allocate a new vector.Michael Sullivan-1/+1
2011-06-27Properly handle the case where src==dst in upcall_vec_append.Michael Sullivan-0/+6
2011-06-27A little tidying in rt.Graydon Hoare-1/+1
2011-06-27Conservatively serialize nearly all upcalls. Successfuly ran make check with ↵Eric Holk-20/+44
RUST_THREADS=8, so we're probably fairly safe now. In the future we can relax the synchronization to get better performance.
2011-06-27Fixed a few concurrency bugs. Still not perfect, but overall it seems much ↵Eric Holk-3/+6
more reliable.
2011-06-20Added string duplication to deep_copy. Closes #520.Eric Holk-3/+15
2011-06-16Removing dead upcall_join. Closes #509.Eric Holk-21/+0
2011-06-16Get rid of old vec_append glue.Michael Sullivan-10/+8
2011-06-15Fixed a problem where spawn arguments were getting lost again. Also, fixed ↵Eric Holk-13/+10
up stack alignment, which closes #496
2011-06-15Re-enabled join.Eric Holk-2/+0
2011-06-14Merge pull request #490 from msullivan/fix_vec_appendPatrick Walton-1/+48
Move the implementation of vec_append from llvm assembly to a regular upcall
2011-06-14rustc: Implement on-heap resizing for interior vectorsPatrick Walton-2/+9
2011-06-14Implement upcall_vec_append and use it for vector append.Michael Sullivan-1/+48
2011-06-13rustc: Add some interior vector spill code, untested as of yetPatrick Walton-2/+13
2011-06-13rustc: Implement simple interior vector append translationPatrick Walton-0/+19
2011-06-13This is the mega-ucontext commit. It replaces the task switching mechanism ↵Eric Holk-2/+20
with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc). This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.
2011-05-27Switched calling conventions so that spawn with multiple arguments works.Eric Holk-1/+1
2011-05-27Switching over to wrappers for spawning functions of multiple arguments. ↵Eric Holk-7/+11
Doesn't quite work yet.
2011-05-26More delicious dead code removal from runtime, upcalls.Graydon Hoare-2/+2
2011-05-24Dead code.Rafael Ávila de Espíndola-42/+0
2011-05-24Dead code.Rafael Ávila de Espíndola-42/+0
2011-05-24Dead code elimination.Rafael Ávila de Espíndola-1/+1
2011-05-24"constant propagate" rust_new_exit_task_glue to its only use.Rafael Ávila de Espíndola-6/+4