Work on debugging race conditions.

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.
This commit is contained in:
Eric Holk
2011-07-07 11:53:08 -07:00
parent dcd2563a3a
commit 8acadb17c2
10 changed files with 91 additions and 36 deletions

View File

@@ -89,6 +89,8 @@ rust_task : public maybe_proxy<rust_task>,
wakeup_callback *_on_wakeup;
lock_and_signal lock;
// Only a pointer to 'name' is kept, so it must live as long as this task.
rust_task(rust_scheduler *sched,
rust_task_list *state,