Coverage Report - com.sun.javafx.runtime.async.BackgroundExecutor
 
Classes in this File Line Coverage Branch Coverage Complexity
BackgroundExecutor
0%
0/15
0%
0/8
1.667
BackgroundExecutor$1
0%
0/4
N/A
1.667
BackgroundExecutor$2
0%
0/4
N/A
1.667
 
 1  
 /*
 2  
  * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
 3  
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 4  
  *
 5  
  * This code is free software; you can redistribute it and/or modify it
 6  
  * under the terms of the GNU General Public License version 2 only, as
 7  
  * published by the Free Software Foundation.  Sun designates this
 8  
  * particular file as subject to the "Classpath" exception as provided
 9  
  * by Sun in the LICENSE file that accompanied this code.
 10  
  *
 11  
  * This code is distributed in the hope that it will be useful, but WITHOUT
 12  
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 13  
  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 14  
  * version 2 for more details (a copy is included in the LICENSE file that
 15  
  * accompanied this code).
 16  
  *
 17  
  * You should have received a copy of the GNU General Public License version
 18  
  * 2 along with this work; if not, write to the Free Software Foundation,
 19  
  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 20  
  *
 21  
  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
 22  
  * CA 95054 USA or visit www.sun.com if you need additional information or
 23  
  * have any questions.
 24  
  */
 25  
 
 26  
 package com.sun.javafx.runtime.async;
 27  
 
 28  
 import java.util.concurrent.*;
 29  
 
 30  
 /**
 31  
  * ExecutorSingleton
 32  
  *
 33  
  * @author Brian Goetz
 34  
  */
 35  
 public class BackgroundExecutor {
 36  
     private static ExecutorService instance;
 37  
     private static ScheduledExecutorService timerInstance;
 38  
 
 39  0
     private BackgroundExecutor() {
 40  
         // not instantiable        
 41  0
     }
 42  
 
 43  
     public static synchronized ExecutorService getExecutor() {
 44  0
         if (instance == null) {
 45  0
             instance = Executors.newCachedThreadPool(new ThreadFactory() {
 46  
                 public Thread newThread(Runnable r) {
 47  0
                     Thread t = new Thread(r);
 48  0
                     t.setPriority(Thread.MIN_PRIORITY);
 49  0
                     return t;
 50  
                 }
 51  
             });
 52  
         }
 53  
 
 54  0
         return instance;
 55  
     }
 56  
 
 57  
     public static synchronized ScheduledExecutorService getTimer() {
 58  0
         if (timerInstance == null) {
 59  
             // @@@ Here's where we load the configuration and such
 60  0
             timerInstance = new ScheduledThreadPoolExecutor(1,
 61  0
                     new ThreadFactory() {
 62  
                         public Thread newThread(Runnable r) {
 63  0
                             Thread t = new Thread(r);
 64  0
                             t.setDaemon(true);
 65  0
                             return t;
 66  
                         }
 67  
                     });
 68  
         }
 69  
 
 70  0
         return timerInstance;
 71  
     }
 72  
 
 73  
     private static synchronized void shutdown() {
 74  0
         if (instance != null) {
 75  0
             instance.shutdown();
 76  0
             instance = null;
 77  
         }
 78  0
         if (timerInstance != null) {
 79  0
             timerInstance.shutdown();
 80  0
             timerInstance= null;
 81  
         }
 82  0
     }
 83  
 }