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:
committed by
Brian Anderson
parent
a44fb04d57
commit
3ae4dcd41e
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user