changeset 304:366742c2b07d

divide list from Scheduler
author sugi
date Tue, 19 Nov 2013 14:35:33 +0900
parents 6e0a909b4b12
children 72739519cc39
files src/alice/topology/manager/keeparive/PingSchedList.java src/alice/topology/manager/keeparive/PingScheduler.java
diffstat 2 files changed, 42 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/alice/topology/manager/keeparive/PingSchedList.java	Tue Nov 19 14:35:33 2013 +0900
@@ -0,0 +1,35 @@
+package alice.topology.manager.keeparive;
+
+import java.util.LinkedList;
+
+public class PingSchedList {
+	private LinkedList<TaskInfo> list = new LinkedList<TaskInfo>();
+	
+	public LinkedList<TaskInfo> getTaskList(){
+		return list;
+	}
+		
+	public synchronized void addTask(TaskInfo newInfo){
+		if (list.isEmpty()) {
+			list.add(newInfo);
+		} else {
+			int cnt = 0;
+			for (TaskInfo info : list){
+				if (info.getSleepTime() < newInfo.getSleepTime()){
+					newInfo.setSleepTime(newInfo.getSleepTime() - info.getSleepTime());	
+				} else if (info.getSleepTime() == newInfo.getSleepTime()){
+					newInfo.setSleepTime(newInfo.getSleepTime() - info.getSleepTime());
+					cnt++;
+					break;
+				} else if (info.getSleepTime() > newInfo.getSleepTime()){
+					info.setSleepTime(info.getSleepTime() - newInfo.getSleepTime());
+					break;
+				}
+				cnt++;
+			}
+			list.add(cnt, newInfo);
+		}
+	}
+	
+	
+}
--- a/src/alice/topology/manager/keeparive/PingScheduler.java	Tue Nov 19 14:04:57 2013 +0900
+++ b/src/alice/topology/manager/keeparive/PingScheduler.java	Tue Nov 19 14:35:33 2013 +0900
@@ -1,39 +1,27 @@
 package alice.topology.manager.keeparive;
 
 import java.util.LinkedList;
-import java.util.List;
-
 import alice.codesegment.CodeSegment;
 
 public class PingScheduler extends CodeSegment{
-	private LinkedList<TaskInfo> list = new LinkedList<TaskInfo>();
+	private PingSchedList plist = new PingSchedList(); 
 	private long INTERVAL = 60 * 1000;
 
-	public boolean updateFlag = false;
 	private boolean interruptFlag = false;
 
 	private long time = 0;
 	public TaskInfo nowTask;
-	private long totalTime = 0;
 	private long postponeTime = 0;
 
-	public long getTotalTime(){
-		return totalTime;
-	}
-
-	public List<TaskInfo> getTaskList(){
-		return list;
-	}
-
 	public synchronized void postpone(String name){
 		long elapsedTime = System.currentTimeMillis() - time;
-		totalTime += elapsedTime;
 		postponeTime = nowTask.getSleepTime() - elapsedTime;
+		LinkedList<TaskInfo> list = plist.getTaskList();
 		if (name.equals(nowTask.getManagerKey())){
 			TaskInfo nextTask = list.get(0);
 			nextTask.setSleepTime(postponeTime + nextTask.getSleepTime());
 			nowTask.setSleepTime(INTERVAL);
-			addTask(nowTask);
+			plist.addTask(nowTask);
 
 		} else {
 			int cnt = 0;
@@ -47,7 +35,7 @@
 					} 
 					list.remove(info);
 					info.setSleepTime(INTERVAL);
-					addTask(info);
+					plist.addTask(info);
 					break;
 				}
 				cnt++;
@@ -55,34 +43,11 @@
 		}
 		interruptFlag = true;
 		notify();
-	}
-
-
-	public synchronized void addTask(TaskInfo newInfo){
-		if (list.isEmpty()) {
-			list.add(newInfo);
-		} else {
-			int cnt = 0;
-			for (TaskInfo info : list){
-				if (info.getSleepTime() < newInfo.getSleepTime()){
-					newInfo.setSleepTime(newInfo.getSleepTime() - info.getSleepTime());	
-				} else if (info.getSleepTime() == newInfo.getSleepTime()){
-					newInfo.setSleepTime(newInfo.getSleepTime() - info.getSleepTime());
-					cnt++;
-					break;
-				} else if (info.getSleepTime() > newInfo.getSleepTime()){
-					info.setSleepTime(info.getSleepTime() - newInfo.getSleepTime());
-					break;
-				}
-				cnt++;
-			}
-			list.add(cnt, newInfo);
-		}
-		updateFlag = true;
-	}
+	}	
 
 	@Override
 	public synchronized void run() {
+		LinkedList<TaskInfo> list = plist.getTaskList();
 		try {
 			while(true){
 				nowTask = list.poll();
@@ -93,7 +58,7 @@
 					interruptFlag = false;				
 				} else {
 					ods.put("_SENDPING", nowTask);
-					totalTime +=nowTask.getSleepTime();					
+					nowTask.getSleepTime();					
 				}
 			}
 		} catch (InterruptedException e) {