Skip to content

Commit f3710df

Browse files
author
Eric Holk
committed
---
yaml --- r: 3480 b: refs/heads/master c: b3e5b5b h: refs/heads/master v: v3
1 parent a1c12b1 commit f3710df

File tree

4 files changed

+10
-1
lines changed

4 files changed

+10
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 63dcd325b909051f53682dc6ddb2d6768ffbbba3
2+
refs/heads/master: b3e5b5bd05fabf9b68ef350632254aa696d74b89

trunk/src/rt/rust_scheduler.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,8 @@ rust_scheduler::create_task(rust_task *spawner, const char *name) {
291291
new (this->kernel) rust_task (this, &newborn_tasks, spawner, name);
292292
DLOG(this, task, "created task: " PTR ", spawner: %s, name: %s",
293293
task, spawner ? spawner->name : "null", name);
294+
if(spawner)
295+
task->pin(spawner->pinned_on);
294296
newborn_tasks.append(task);
295297
return task;
296298
}

trunk/src/rt/rust_task.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,9 +528,15 @@ rust_task::free(void *mem, memory_region::memory_region_type type) {
528528
}
529529

530530
void rust_task::pin() {
531+
I(this->sched, running_on != -1);
531532
pinned_on = running_on;
532533
}
533534

535+
void rust_task::pin(int id) {
536+
I(this->sched, running_on == -1);
537+
pinned_on = id;
538+
}
539+
534540
void rust_task::unpin() {
535541
pinned_on = -1;
536542
}

trunk/src/rt/rust_task.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ rust_task : public maybe_proxy<rust_task>,
154154
void free(void *mem, memory_region::memory_region_type type);
155155

156156
void pin();
157+
void pin(int id);
157158
void unpin();
158159
};
159160

0 commit comments

Comments
 (0)