Skip to content

Commit

Permalink
auto merge of #5887 : jdm/rust/stackbounds, r=brson
Browse files Browse the repository at this point in the history
This is needed to allow GC to work in SpiderMonkey.
  • Loading branch information
bors committed Apr 22, 2013
2 parents 6a31525 + 5cc6a0b commit 3830040
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/libcore/gc.rs
Expand Up @@ -73,6 +73,7 @@ pub mod rustrt {
pub unsafe fn rust_gc_metadata() -> *Word;

pub unsafe fn rust_get_stack_segment() -> *StackSegment;
pub unsafe fn rust_get_c_stack() -> *StackSegment;
}
}

Expand Down
5 changes: 5 additions & 0 deletions src/rt/rust_builtin.cpp
Expand Up @@ -549,6 +549,11 @@ rust_get_stack_segment() {
return rust_get_current_task()->stk;
}

extern "C" CDECL stk_seg *
rust_get_c_stack() {
return rust_get_current_task()->get_c_stack();
}

extern "C" CDECL void
start_task(rust_task *target, fn_env_pair *f) {
target->start(f->f, f->env, NULL);
Expand Down
1 change: 1 addition & 0 deletions src/rt/rust_task.h
Expand Up @@ -374,6 +374,7 @@ rust_task : public kernel_owned<rust_task>
void call_on_c_stack(void *args, void *fn_ptr);
void call_on_rust_stack(void *args, void *fn_ptr);
bool have_c_stack() { return c_stack != NULL; }
stk_seg *get_c_stack() { return c_stack; }

rust_task_state get_state() { return state; }
rust_cond *get_cond() { return cond; }
Expand Down
1 change: 1 addition & 0 deletions src/rt/rustrt.def.in
Expand Up @@ -49,6 +49,7 @@ rust_task_is_unwinding
rust_get_task
rust_try_get_task
rust_get_stack_segment
rust_get_c_stack
rust_log_str
start_task
vec_reserve_shared_actual
Expand Down

0 comments on commit 3830040

Please sign in to comment.