public static void sleep (long millis) throws InterruptedException {
public static void sleep (long millis) throws InterruptedException, VM_PragmaInterruptible {
  public static void sleep (long millis) throws InterruptedException {    VM_Thread myThread = getCurrentThread();    myThread.wakeupTime = VM_Time.now() + millis * .001;    // cache the proxy before obtaining lock    myThread.proxy = new VM_Proxy (myThread, myThread.wakeupTime);     // RCGC - currently prevent threads from migrating to another processor    if (VM.BuildForConcurrentGC) {      myThread.processorAffinity = VM_Processor.getCurrentProcessor();    }    VM_Scheduler.wakeupMutex.lock();    yield(VM_Scheduler.wakeupQueue, VM_Scheduler.wakeupMutex);  }