comparison src/alice/codesegment/CodeSegmentManager.java @ 335:2f003d5703d5 META_CODESEGMENT

Meta CodeSegment Test
author sugi
date Mon, 14 Apr 2014 15:46:29 +0900
parents 1caa6970cf01
children 5fa184113850
comparison
equal deleted inserted replaced
334:c0c00f8f5525 335:2f003d5703d5
8 8
9 public class CodeSegmentManager { 9 public class CodeSegmentManager {
10 10
11 private static CodeSegmentManager instance = new CodeSegmentManager(); 11 private static CodeSegmentManager instance = new CodeSegmentManager();
12 private ThreadPoolExecutor codeSegmentExecutor = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), // initial number of threads 12 private ThreadPoolExecutor codeSegmentExecutor = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), // initial number of threads
13 Runtime.getRuntime().availableProcessors(), 13 Runtime.getRuntime().availableProcessors(),
14 Integer.MAX_VALUE, // keepAliveTime 14 Integer.MAX_VALUE, // keepAliveTime
15 TimeUnit.SECONDS, 15 TimeUnit.SECONDS,
16 new LinkedBlockingQueue<Runnable>()); 16 new LinkedBlockingQueue<Runnable>());
17 private Logger logger = Logger.getLogger(CodeSegmentManager.class); 17 private Logger logger = Logger.getLogger(CodeSegmentManager.class);
18 18
19 public static CodeSegmentManager get() { 19 public static CodeSegmentManager get() {
20 return instance; 20 return instance;
21 } 21 }
22 22
23 public static void submit(CodeSegment cs) { 23 public static void submit(CodeSegment cs) {
24 CodeSegmentManager csManager = CodeSegmentManager.get(); 24 if (cs.hasMeta()){
25 csManager.codeSegmentExecutor.execute(cs); 25 try {
26 if (csManager.logger.isDebugEnabled()) { 26 CodeSegment meta = cs.getMetaClass().newInstance();
27 csManager.logger.debug(cs.getClass().getName()); 27 meta.setCodeSegment(cs);
28 meta.setKey();
29
30 } catch (Exception e) {
31 e.printStackTrace();
32 }
33
34 } else {
35 CodeSegmentManager csManager = CodeSegmentManager.get();
36 csManager.codeSegmentExecutor.execute(cs);
37 if (csManager.logger.isDebugEnabled()) {
38 csManager.logger.debug(cs.getClass().getName());
39 }
28 } 40 }
29 } 41 }
30 42
31 } 43 }