Added a message passing system based on lock free queues for inter-thread communication. Channels now buffer on the sending side, and no longer require blocking when sending. Lots of other refactoring and bug fixes.

This commit is contained in:
Michael Bebenita
2010-07-19 14:05:18 -07:00
parent 1f0656d908
commit 00d1465d13
35 changed files with 1498 additions and 838 deletions

View File

@@ -19,7 +19,7 @@ str_alloc(rust_task *task, size_t n_bytes)
extern "C" CDECL rust_str*
last_os_error(rust_task *task) {
rust_dom *dom = task->dom;
dom->log(rust_log::TASK, "last_os_error()");
task->log(rust_log::TASK, "last_os_error()");
#if defined(__WIN32__)
LPTSTR buf;
@@ -95,7 +95,7 @@ extern "C" CDECL rust_vec*
vec_alloc(rust_task *task, type_desc *t, size_t n_elts)
{
rust_dom *dom = task->dom;
dom->log(rust_log::MEM,
task->log(rust_log::MEM,
"vec_alloc %" PRIdPTR " elements of size %" PRIdPTR,
n_elts, t->size);
size_t fill = n_elts * t->size;