Lots of work on memory tracking and channels.

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.
This commit is contained in:
Eric Holk
2011-07-18 12:02:26 -07:00
committed by Brian Anderson
parent a44fb04d57
commit 3ae4dcd41e
24 changed files with 313 additions and 240 deletions

View File

@@ -290,7 +290,8 @@ rust_scheduler::get_cache() {
rust_task *
rust_scheduler::create_task(rust_task *spawner, const char *name) {
rust_task *task =
new (this->kernel) rust_task (this, &newborn_tasks, spawner, name);
new (this->kernel, "rust_task")
rust_task (this, &newborn_tasks, spawner, name);
DLOG(this, task, "created task: " PTR ", spawner: %s, name: %s",
task, spawner ? spawner->name : "null", name);
if(spawner) {