threadSlot << LOG_BYTES_IN_ADDRESS, null);
Offset.fromIntZeroExtend(threadSlot << LOG_BYTES_IN_ADDRESS), null);
  final void releaseThreadSlot() {    /*     * Problem:     *     *  We'd like to say "VM_Scheduler.threads[index] = null;" but     *  can't do "checkstore" inside dispatcher (with thread switching     *  enabled) without losing control to a threadswitch, so we must     *  hand code the operation via magic.  Since we're using magic     *  for the store, we need to perform an explicit write     *  barrier. Generational collectors may not care about a null     *  store, but a reference counting collector sure does.     */    if (MM_Interface.NEEDS_WRITE_BARRIER)      MM_Interface.arrayStoreWriteBarrier(VM_Scheduler.threads,                                           threadSlot, null);    VM_Magic.setObjectAtOffset(VM_Scheduler.threads,                                threadSlot << LOG_BYTES_IN_ADDRESS, null);    VM_Scheduler.threadAllocationIndex = threadSlot;    // ensure trap if we ever try to "become" this thread again    if (VM.VerifyAssertions) threadSlot = -1;   }