public synchronized ArrayDeque<MapTask> getRunningMapList(int id) {
		ArrayDeque<MapTask> list = new ArrayDeque<MapTask>();
		HashSet<MapTask> tasks = slaveRunningTask.get(id);
		Iterator<MapTask> it = tasks.iterator();
		while (it.hasNext()) {
			MapTask t = it.next();
			list.add(t);
			// mark the task as unassigned
			jobAssignedTask.get(t.getJob().getId()).remove(t);
		}
		return list;
	}