about summary refs log tree commit diff
path: root/src/lib/task.rs
AgeCommit message (Collapse)AuthorLines
2011-08-16Port the stdlib to the decl foo<T> syntax.Erick Tryzelaar-1/+1
2011-08-16Removed trans_comm.rs from the compiler. Updating aio/sio to work with the ↵Eric Holk-11/+0
new chan and port system, started on a networking module for the standard library.
2011-08-15Properly ref counting to fix valgrind issues on linux.Eric Holk-0/+6
2011-08-15Removed spawn and task from the parser. Updated all the tests except for the ↵Eric Holk-0/+3
benchmarks.
2011-08-15Fixed memory accounting and task stack creation bugs.Eric Holk-0/+3
2011-08-15Working on more spawn test cases.Eric Holk-4/+10
2011-08-15Added a library version of spawn. Before long, we can remove the old version.Eric Holk-0/+79
2011-08-15Port ID-based channels.Eric Holk-0/+8
2011-07-28Updating to work on Windows.Eric Holk-1/+1
2011-07-28Adding a function to stdlib to set the min stack size, for programsEric Holk-0/+6
that absolutely will not succeed with a large default stack. This should be removed once we have stack grown working. Also updated word-count to succeed under the new test framework.
2011-07-27Remove task::workerBrian Anderson-82/+0
It was too unsafe to live. It already apeared to be causing problems with eholk's incoming task changes, so I'm killing it now before it can spread.
2011-07-27Reformat for new syntaxMarijn Haverbeke-80/+60
2011-07-26Run test process from a dedicated taskBrian Anderson-0/+12
This avoids a race wherein test tasks could run processes that stole the environment of other tasks's processes.
2011-07-24Add task::send and task::recvBrian Anderson-0/+8
2011-07-24Add task::worker. Spawns a task and returns a channel to itBrian Anderson-0/+70
It takes a lot of boilerplate to create a task and establish a way to talk to it. This function simplifies that, allowing you to write something like 'worker(f).chan <| start'. Implementation is very unsafe and only works for a few types of channels, but something like this is very useful.
2011-07-22More work on word-count.Eric Holk-0/+8
Updated the MapReduce protocol so that it's correct more often. It's still not perfect, but the bugs repro less often now. Also found a race condition in channel sending. The problem is that send and receive both need to refer to the _unread field in circular_buffer. For now I just grabbed the port lock to send. We can probably get around this by using atomics instead.
2011-07-15Remove task_unsupervise from rt builtin functionsBrian Anderson-2/+2
This was an exact duplicate of the unsupervise function
2011-07-15Modify task::join to indicate how the task terminatedBrian Anderson-3/+11
This involves sticking yet another field into the task structure
2011-07-14Add an unsupervise builtin and function to std::taskBrian Anderson-0/+5
Calling task::unsupervise de-parents the current task, with the result that failures do not propogate up the task tree.
2011-06-29Adding support for pinning tasks to the currently running thread. Closes #598.Eric Holk-0/+10
2011-06-15Re-enabled join.Eric Holk-2/+2
2011-06-15Fix a bunch of compile-command lines to use RBUILDGraydon Hoare-1/+1
2011-06-13This is the mega-ucontext commit. It replaces the task switching mechanism ↵Eric Holk-0/+31
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.