More work on word-count.

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.
This commit is contained in:
Eric Holk
2011-07-21 12:11:05 -07:00
parent 8f2254b8c2
commit 8878b128ba
6 changed files with 134 additions and 36 deletions

View File

@@ -850,6 +850,11 @@ unpin_task(rust_task *task) {
task->unpin();
}
extern "C" CDECL rust_chan *
clone_chan(rust_task *task, rust_chan *chan) {
return chan->clone(task);
}
//
// Local Variables:
// mode: C++