@Override
		public boolean halt(Event lastEvent, OurSim ourSim) {
			
			msgs++;
			
			if (msgs % 100000 == 0) {
				System.out.println(msgs);
			}
			
			if (!lastEvent.getType().equals(BrokerEvents.HERE_IS_EXECUTION_RESULT)) {
				return false;
			}
			
			boolean halt = true;
			
			List<Job> finishedJobsList = new LinkedList<Job>();
			Broker broker = ourSim.getGrid().getObject(BROKER_ID);

			List<Job> jobs = broker.getJobs();
			int currentlyFinished = 0;

			for (Job job : jobs) {
				if (job.getState().equals(ExecutionState.FINISHED)) {
					currentlyFinished++;
					finishedJobsList.add(job);
				}
			}

			halt &= currentlyFinished >= finishedJobs;

			if (halt) {
				for (Job job : finishedJobsList) {
					System.out.println(job.getEndTime());
				}
			}

			return halt;
		}