jdk/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java
changeset 6674 2b22e69fdb75
parent 6543 c06e5f2c6bb1
child 7976 f273c0d04215
equal deleted inserted replaced
6673:3674dbc66612 6674:2b22e69fdb75
   776 
   776 
   777     // Run State management
   777     // Run State management
   778 
   778 
   779     // status check methods used mainly by ForkJoinPool
   779     // status check methods used mainly by ForkJoinPool
   780     final boolean isRunning()     { return runState == 0; }
   780     final boolean isRunning()     { return runState == 0; }
   781     final boolean isTerminating() { return (runState & TERMINATING) != 0; }
       
   782     final boolean isTerminated()  { return (runState & TERMINATED) != 0; }
   781     final boolean isTerminated()  { return (runState & TERMINATED) != 0; }
   783     final boolean isSuspended()   { return (runState & SUSPENDED) != 0; }
   782     final boolean isSuspended()   { return (runState & SUSPENDED) != 0; }
   784     final boolean isTrimmed()     { return (runState & TRIMMED) != 0; }
   783     final boolean isTrimmed()     { return (runState & TRIMMED) != 0; }
       
   784 
       
   785     final boolean isTerminating() {
       
   786         if ((runState & TERMINATING) != 0)
       
   787             return true;
       
   788         if (pool.isAtLeastTerminating()) { // propagate pool state
       
   789             shutdown();
       
   790             return true;
       
   791         }
       
   792         return false;
       
   793     }
   785 
   794 
   786     /**
   795     /**
   787      * Sets state to TERMINATING. Does NOT unpark or interrupt
   796      * Sets state to TERMINATING. Does NOT unpark or interrupt
   788      * to wake up if currently blocked. Callers must do so if desired.
   797      * to wake up if currently blocked. Callers must do so if desired.
   789      */
   798      */