public synchronized boolean setGridletsResumed(int failedMachID)
	    {

	        int gridletInPausedList_size = gridletPausedList_.size();
	        ResGridlet rgl;
	        Gridlet gl;

            // update the Gridlets up to this point in time
            updateGridletProcessing();

	        // go on with the gridlet in InExec list.
	        int machID;
	        for (int i = 0; i < gridletInPausedList_size; i++) {
	            rgl = (ResGridlet) gridletPausedList_.get(i);
	            machID = rgl.getMachineID();

	            // only fail gridlets allocated to the machines which have failed
	            if (machID == failedMachID)
	            {
	                int status = rgl.getGridletStatus();

	                // if the gridlet has already finished, then just send it back.
	                // Otherwise, set status to RESUMED
	                if (status == Gridlet.PAUSED)
	                {
               	
	                	// resume the execution due to recovery
	                	gl = rgl.getGridlet();
	                	
	                	gridletResume(gl.getGridletID(),gl.getUserID(),false);
	                	return true;
                	
	                }

	            }
	        }
	        // no any paused gridlet for this machine        
	        if (gridletQueueList_.size() > 0) {
	            super.sendInternalEvent(0.0);
	        }
			return false;
	    }