public void run(){
            
            // If we have a list of replies from a previous repetition
            // calculate suspected processes
	    if (started) {

		for(int i = 0; i <= p.getNo(); i++) {
		    if (i != 0 && i != p.pid) {
			if (!successfulReplies[i-1] && !suspectedProcesses[i-1]) {
			    Utils.out(p.pid,"Process " + i + " is now suspected");
			    suspectedProcesses[i-1] = true;
			    isSuspected(i);
			}
			 //clear the slot for next time
			successfulReplies[i-1] = false;

		    }
		}

	    }
            

            lastHeartbeat = System.currentTimeMillis();
	    //Utils.out(p.pid,""+lastHeartbeat);
	    p.broadcast(Utils.HEARTBEAT,"" + lastHeartbeat);
	    started = true;
	}