/* * This file is part of the Jikes RVM project (http://jikesrvm.org). * * This file is licensed to You under the Common Public License (CPL); * You may not use this file except in compliance with the License. You * may obtain a copy of the License at * * http://www.opensource.org/licenses/cpl1.0.php * * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. */ package org.jikesrvm.scheduler.greenthreads; import org.vmmagic.pragma.Uninterruptible; /** * Object specifying a process to wait for, * and for recording its exit status. * * @see VM_ThreadProcessWaitQueue */ @Uninterruptible public final class VM_ThreadProcessWaitData extends VM_ThreadEventWaitData { /** Process ID of process being waited for. */ final int pid; /** Set to true if the process has finished. */ public boolean finished; /** Exit status of the process (if finished). */ public int exitStatus; /** * Constructor. * @param maxWaitNano timeout value for wait, or negative * if there is no timeout * @param pid process ID of process being waited for */ VM_ThreadProcessWaitData(int pid, long maxWaitNano) { super(maxWaitNano); this.pid = pid; } /** * Inform given <code>VM_ThreadEventWaitQueue</code> of this object's * concrete class type. */ void accept(VM_ThreadEventWaitDataVisitor visitor) { visitor.visitThreadProcessWaitData(this); } }