changeset 29:be58bfe90766

remove synchronized
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Thu, 01 Feb 2018 20:12:02 +0900
parents d1fc3ebb269e
children 250ae646db7f
files src/main/java/christie/codegear/CodeGearManager.java src/main/java/christie/codegear/StartCodeGear.java src/main/java/christie/datagear/DataGears.java src/main/java/christie/datagear/LocalDataGearManager.java src/main/java/christie/datagear/WaitList.java
diffstat 5 files changed, 24 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/christie/codegear/CodeGearManager.java	Tue Jan 30 19:55:14 2018 +0900
+++ b/src/main/java/christie/codegear/CodeGearManager.java	Thu Feb 01 20:12:02 2018 +0900
@@ -14,16 +14,16 @@
  * CodeGearの実行
  */
 public class CodeGearManager{
-    private ConcurrentHashMap<String, DataGearManager>  dataGearManagers = new ConcurrentHashMap<String, DataGearManager>();
-    private ConcurrentHashMap<Integer, CodeGearManager> cgms;
+    private ConcurrentHashMap<String, DataGearManager>  dgmList = new ConcurrentHashMap<String, DataGearManager>();
+    private ConcurrentHashMap<Integer, CodeGearManager> cgmList;
     private ThreadPoolExecutor threadPoolExecutor;
     private LocalDataGearManager localDGM = new LocalDataGearManager();
     private ConcurrentHashMap<String, IncomingTcpConnection> acceptHash = new ConcurrentHashMap<String, IncomingTcpConnection>();
     public int cgmID;
 
-    public CodeGearManager(int cgmID, ThreadPoolExecutor exe, ConcurrentHashMap<Integer, CodeGearManager> cgms, int localPort) {
-        dataGearManagers.put("local", localDGM);
-        this.cgms = cgms;
+    public CodeGearManager(int cgmID, ThreadPoolExecutor exe, ConcurrentHashMap<Integer, CodeGearManager> cgmList, int localPort) {
+        dgmList.put("local", localDGM);
+        this.cgmList = cgmList;
         threadPoolExecutor = exe;
         this.cgmID = cgmID;
         new ChristieDaemon(localPort, this).listen();
@@ -34,8 +34,8 @@
     }
 
     public DataGearManager getDGM(String dgmName){
-        if (dataGearManagers.containsKey(dgmName)){
-            return dataGearManagers.get(dgmName);
+        if (dgmList.containsKey(dgmName)){
+            return dgmList.get(dgmName);
         } else {
             throw new IllegalArgumentException("DGM "+ dgmName + " is not found.");
         }
@@ -43,7 +43,7 @@
 
     public RemoteDataGearManager createRemoteDGM(String dgmName, String address, int port){
         RemoteDataGearManager remote = new RemoteDataGearManager(dgmName, address, port, this);
-        dataGearManagers.put(dgmName, remote);
+        dgmList.put(dgmName, remote);
 
         return remote;
     }
@@ -56,8 +56,8 @@
         cg.setup(this);
     }
 
-    public ConcurrentHashMap<Integer, CodeGearManager> getCgms() {
-        return cgms;
+    public ConcurrentHashMap<Integer, CodeGearManager> getCgmList() {
+        return cgmList;
     }
 
     public void setAccept(String key, IncomingTcpConnection in) {
--- a/src/main/java/christie/codegear/StartCodeGear.java	Tue Jan 30 19:55:14 2018 +0900
+++ b/src/main/java/christie/codegear/StartCodeGear.java	Thu Feb 01 20:12:02 2018 +0900
@@ -6,7 +6,7 @@
 import java.util.concurrent.TimeUnit;
 
 public abstract class StartCodeGear extends CodeGear{
-    static ConcurrentHashMap<Integer, CodeGearManager> cgms = new ConcurrentHashMap<>();
+    static ConcurrentHashMap<Integer, CodeGearManager> cgmList = new ConcurrentHashMap<>();
     static LinkedBlockingQueue<Runnable> taskQueue = new LinkedBlockingQueue<Runnable>();
     static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), // initial number of threads
             Runtime.getRuntime().availableProcessors(),
@@ -20,13 +20,13 @@
     }
 
     public static CodeGearManager createCGM(int localPort){
-        CodeGearManager cgm = new CodeGearManager(cgmCount, threadPoolExecutor, cgms, localPort);
-        cgms.put(cgmCount++, cgm);
+        CodeGearManager cgm = new CodeGearManager(cgmCount, threadPoolExecutor, cgmList, localPort);
+        cgmList.put(cgmCount++, cgm);
         return cgm;
     }
 
     public static CodeGearManager getCGM(String name){
-        return cgms.get(name);
+        return cgmList.get(name);
     }
 
     @Override
--- a/src/main/java/christie/datagear/DataGears.java	Tue Jan 30 19:55:14 2018 +0900
+++ b/src/main/java/christie/datagear/DataGears.java	Thu Feb 01 20:12:02 2018 +0900
@@ -8,7 +8,7 @@
 public class DataGears {
     protected TreeMap<String, LinkedBlockingQueue<DataGear>> dataGears = new TreeMap<String, LinkedBlockingQueue<DataGear>>();
 
-    public void put(String key, DataGear dg){
+    public synchronized void put(String key, DataGear dg){
         if (dataGears.containsKey(key)) {
             dataGears.get(key).add(dg);
         } else {
@@ -18,7 +18,7 @@
         }
     }
 
-    public Object take(String key){
+    public synchronized Object take(String key){
         Object data = dataGears.get(key).poll().getData();
 
         if (dataGears.get(key).isEmpty()) {
@@ -28,11 +28,11 @@
         return data;
     }
 
-    public Object peek(String key){
+    public synchronized Object peek(String key){
         return dataGears.get(key).peek().getData();
     }
 
-    public boolean containsKey(String key){
+    public synchronized boolean containsKey(String key){
         return dataGears.containsKey(key);
     }
 }
--- a/src/main/java/christie/datagear/LocalDataGearManager.java	Tue Jan 30 19:55:14 2018 +0900
+++ b/src/main/java/christie/datagear/LocalDataGearManager.java	Thu Feb 01 20:12:02 2018 +0900
@@ -31,7 +31,7 @@
         runCommand(new PutCommand(1, "local", key, dg));
     }
 
-    public synchronized void runCommand(Command cm){
+    public void runCommand(Command cm){
         switch (cm.type) {
             case PUT:
                 dataGears.put(cm.key, cm.dg);
--- a/src/main/java/christie/datagear/WaitList.java	Tue Jan 30 19:55:14 2018 +0900
+++ b/src/main/java/christie/datagear/WaitList.java	Thu Feb 01 20:12:02 2018 +0900
@@ -2,14 +2,14 @@
 
 import christie.datagear.command.Command;
 
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.HashMap;
 import java.util.concurrent.LinkedBlockingQueue;
 
 public class WaitList {
 
-    private ConcurrentHashMap<String, LinkedBlockingQueue<Command>> waitList = new ConcurrentHashMap<>();
+    private HashMap<String, LinkedBlockingQueue<Command>> waitList = new HashMap<>();
 
-    public void add(Command cm) {
+    public synchronized void add(Command cm) {
         if(waitList.containsKey(cm.key)){
             waitList.get(cm.key).add(cm);
         } else {
@@ -19,7 +19,7 @@
         }
     }
 
-    public Command getAndRemoveCommand(String key) {
+    public synchronized Command getAndRemoveCommand(String key) {
         Command cm = null;
         if (waitList.containsKey(key)){
             cm = waitList.get(key).poll();
@@ -30,7 +30,7 @@
         return cm;
     }
 
-    public boolean containsKey(String key){
+    public synchronized boolean containsKey(String key){
         return waitList.containsKey(key);
     }
 }