changeset 32:e580cd6b225a

bug fixed (about totalTime)
author sugi
date Mon, 11 Nov 2013 16:25:55 +0900
parents 5598fa745a51
children f5cf57c645ab
files src/alice/topology/manager/keeparive/PingScheduler.java src/alice/topology/manager/keeparive/SchedulerViewer.java
diffstat 2 files changed, 17 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/alice/topology/manager/keeparive/PingScheduler.java	Tue Nov 05 20:19:30 2013 +0900
+++ b/src/alice/topology/manager/keeparive/PingScheduler.java	Mon Nov 11 16:25:55 2013 +0900
@@ -13,6 +13,7 @@
 	
 	public boolean updateFlag = false;
 	private boolean postponeFlag = false;
+	private boolean nowTaskFlag = false;
 	
 	public long time = 0;
 	public int taskNum = 0;
@@ -32,7 +33,7 @@
 		if (name.equals(nowTask.getName())){
 			TaskInfo nextTask = list.get(0);
 			nextTask.setTime(postponeTime + nextTask.getTime());
-			
+			nowTaskFlag = true;
 		} else {
 			for (int cnt = 0 ;cnt < list.size();  cnt++){
 				TaskInfo task = list.get(cnt);
@@ -44,11 +45,11 @@
 					list.remove(cnt);
 					task.setTime(INTERVAL);
 					addTask(task);
-					postponeFlag = true;
 					break;
 				}
 			}
 		}
+		postponeFlag = true;
 		notify();
 	}
 	
@@ -64,24 +65,24 @@
 		if (list.isEmpty()) {
 			list.add(newInfo);
 		} else {
-			int cnt = 0;
-			for (TaskInfo info : list){		
+			for (int cnt = 0; cnt < list.size(); cnt++){
+				TaskInfo info = list.get(cnt);
 				if (info.getTime() < newInfo.getTime()){
 					newInfo.setTime(newInfo.getTime() - info.getTime());
 					if (cnt+1 == list.size()){
+						list.add(newInfo);
 						break;
 					}
 				} else if (info.getTime() == newInfo.getTime()){
 					newInfo.setTime(newInfo.getTime() - info.getTime());
-					cnt++;
+					list.add(cnt+1, newInfo);
 					break;
 				} else if (info.getTime() > newInfo.getTime()){
 					info.setTime(info.getTime() - newInfo.getTime());
+					list.add(cnt, newInfo);
 					break;
 				}
-				cnt++;
 			}
-			list.add(cnt, newInfo);
 		}
 		updateFlag = true;
 	}
@@ -100,8 +101,14 @@
 				if (postponeFlag){
 					long remainingTime = nowTask.getTime() - (System.currentTimeMillis() - time);
 					totalTime += (System.currentTimeMillis() - time);
-					nowTask.setTime(remainingTime);
-					list.add(0, nowTask);
+					if (nowTaskFlag){
+						nowTask.setTime(INTERVAL);
+						addTask(nowTask);
+					} else {
+						nowTask.setTime(remainingTime);
+						list.add(0, nowTask);
+						updateFlag = true;						
+					}
 					postponeFlag = false;
 				} else {
 					totalTime +=nowTask.getTime();
--- a/src/alice/topology/manager/keeparive/SchedulerViewer.java	Tue Nov 05 20:19:30 2013 +0900
+++ b/src/alice/topology/manager/keeparive/SchedulerViewer.java	Mon Nov 11 16:25:55 2013 +0900
@@ -80,6 +80,7 @@
 			if(!dataSeries.getData().isEmpty())
 				dataSeries.getData().clear();
 			count = (int) (ps.getTotalTime()/1000);
+			System.out.println("totalTime "+count+" s");
 			dataSeries.getData().add(new XYChart.Data<Number, Number>(count, ps.nowTask.getTaskNum()));
 			count +=ps.nowTask.getTime()/1000;
 			dataSeries.getData().add(new XYChart.Data<Number, Number>(count, ps.nowTask.getTaskNum()));