예제 #1
0
void Thread::set_stack_limit(address value) {
#ifdef UNDER_CE
  value = (address)((int)value | _system_address);
#endif
  int_field_put(stack_limit_offset(), (jint) value);
  if (Scheduler::get_gc_current_thread() != NULL) {
    // in a gc so check the old current thread pointer
    if (this->obj() == Scheduler:: get_gc_current_thread()) {
      update_current_stack_limit(this);
    }
  } else {
    if (Thread::current()->equals(this)) {
      update_current_stack_limit(this);
    }
  }
}
예제 #2
0
 // Accessors for the stack limit
 address stack_limit()         const {
   return (address) int_field(stack_limit_offset());
 }