Skip to content

Commit 1de40c7

Browse files
committed
---
yaml --- r: 6535 b: refs/heads/master c: 6da1a3f h: refs/heads/master i: 6533: 40bb272 6531: 4c06d20 6527: 014babc v: v3
1 parent 9f10372 commit 1de40c7

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
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: d1fd7d49a773d5b5921a659d9c1222b662b991d5
2+
refs/heads/master: 6da1a3fcd6b8996a8fde2dd80a93a3a3008a9659

trunk/src/rt/rust_scheduler.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -367,14 +367,11 @@ rust_scheduler::init_tls() {
367367
tls_initialized = true;
368368
}
369369

370-
extern "C" CDECL void
371-
record_sp(void *limit);
372-
373370
void
374371
rust_scheduler::place_task_in_tls(rust_task *task) {
375372
int result = pthread_setspecific(task_key, task);
376373
assert(!result && "Couldn't place the task in TLS!");
377-
record_sp(task->stk->data + RED_ZONE_SIZE);
374+
task->record_stack_limit();
378375
}
379376

380377
rust_task *

trunk/src/rt/rust_task.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -576,16 +576,20 @@ rust_task::new_stack(size_t stk_sz, void *args_addr, size_t args_sz) {
576576
new_sp = align_down(new_sp - (args_sz + sizeof_retaddr));
577577
new_sp += sizeof_retaddr;
578578
memcpy(new_sp, args_addr, args_sz);
579-
record_sp(stk_seg->data + RED_ZONE_SIZE);
579+
record_stack_limit();
580580
return new_sp;
581581
}
582582

583583
void
584584
rust_task::del_stack() {
585585
del_stk(this, stk);
586-
record_sp(stk->data + RED_ZONE_SIZE);
586+
record_stack_limit();
587587
}
588588

589+
void
590+
rust_task::record_stack_limit() {
591+
record_sp(stk->data + RED_ZONE_SIZE);
592+
}
589593
//
590594
// Local Variables:
591595
// mode: C++

trunk/src/rt/rust_task.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ rust_task : public kernel_owned<rust_task>, rust_cond
199199

200200
void *new_stack(size_t stk_sz, void *args_addr, size_t args_sz);
201201
void del_stack();
202+
void record_stack_limit();
202203
};
203204

204205
//

0 commit comments

Comments
 (0)