Skip to content

Commit e866277

Browse files
committed
std::rt: Remove an unnecessary allocation from the main sched loop
1 parent b0cae8a commit e866277

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/libstd/rt/task.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ pub struct Task {
5959
}
6060

6161
pub enum TaskType {
62-
GreenTask(Option<~SchedHome>),
62+
GreenTask(Option<SchedHome>),
6363
SchedTask
6464
}
6565

@@ -173,7 +173,7 @@ impl Task {
173173
name: None,
174174
coroutine: Some(Coroutine::new(stack_pool, stack_size, start)),
175175
sched: None,
176-
task_type: GreenTask(Some(~home)),
176+
task_type: GreenTask(Some(home)),
177177
borrow_list: None
178178
}
179179
}
@@ -196,15 +196,15 @@ impl Task {
196196
name: None,
197197
coroutine: Some(Coroutine::new(stack_pool, stack_size, start)),
198198
sched: None,
199-
task_type: GreenTask(Some(~home)),
199+
task_type: GreenTask(Some(home)),
200200
borrow_list: None
201201
}
202202
}
203203

204204
pub fn give_home(&mut self, new_home: SchedHome) {
205205
match self.task_type {
206206
GreenTask(ref mut home) => {
207-
*home = Some(~new_home);
207+
*home = Some(new_home);
208208
}
209209
SchedTask => {
210210
rtabort!("type error: used SchedTask as GreenTask");
@@ -216,7 +216,7 @@ impl Task {
216216
match self.task_type {
217217
GreenTask(ref mut home) => {
218218
let out = home.take_unwrap();
219-
return *out;
219+
return out;
220220
}
221221
SchedTask => {
222222
rtabort!("type error: used SchedTask as GreenTask");
@@ -275,8 +275,8 @@ impl Task {
275275

276276
pub fn is_home_no_tls(&self, sched: &~Scheduler) -> bool {
277277
match self.task_type {
278-
GreenTask(Some(~AnySched)) => { false }
279-
GreenTask(Some(~Sched(SchedHandle { sched_id: ref id, _}))) => {
278+
GreenTask(Some(AnySched)) => { false }
279+
GreenTask(Some(Sched(SchedHandle { sched_id: ref id, _}))) => {
280280
*id == sched.sched_id()
281281
}
282282
GreenTask(None) => {
@@ -291,8 +291,8 @@ impl Task {
291291

292292
pub fn homed(&self) -> bool {
293293
match self.task_type {
294-
GreenTask(Some(~AnySched)) => { false }
295-
GreenTask(Some(~Sched(SchedHandle { _ }))) => { true }
294+
GreenTask(Some(AnySched)) => { false }
295+
GreenTask(Some(Sched(SchedHandle { _ }))) => { true }
296296
GreenTask(None) => {
297297
rtabort!("task without home");
298298
}
@@ -309,11 +309,11 @@ impl Task {
309309
let sched_id = task.sched.get_ref().sched_id();
310310
let sched_run_anything = task.sched.get_ref().run_anything;
311311
match task.task_type {
312-
GreenTask(Some(~AnySched)) => {
312+
GreenTask(Some(AnySched)) => {
313313
rtdebug!("anysched task in sched check ****");
314314
sched_run_anything
315315
}
316-
GreenTask(Some(~Sched(SchedHandle { sched_id: ref id, _ }))) => {
316+
GreenTask(Some(Sched(SchedHandle { sched_id: ref id, _ }))) => {
317317
rtdebug!("homed task in sched check ****");
318318
*id == sched_id
319319
}

0 commit comments

Comments
 (0)