tileAvail[tile.getTileNumber()] = currentTime
tileAvail[tile.getTileNumber()] = ((currentTime > tileAvail[tile.getTileNumber()]) ? currentTime : tileAvail[tile.getTileNumber()])
    private void scheduleTrace(HashMap layout, Trace trace, LinkedList sortedList)     {	assert layout != null && trace != null;	//	System.out.println("Scheduling Trace: " + trace);	//remove this trace from the list of traces to schedule	sortedList.remove(trace);	//add the trace to the schedule	schedule.add(trace);		//now set the layout for the filterTraceNodes	//and set the available time for each tile	TraceNode node = trace.getHead().getNext();	while (node instanceof FilterTraceNode) {	    assert layout.containsKey(node) && 		layout.get(node) != null;	    RawTile tile = (RawTile)layout.get(node);	    ((FilterTraceNode)node).setXY(tile.getX(), 					  tile.getY());	    //add to the avail time for the tile	    //add the bottleneck work	    tileAvail[tile.getTileNumber()] = currentTime 		+ partitioner.getTraceBNWork(trace);	    	    //	    System.out.println("  *(" + currentTime + ") Assigning " + node + " to " + tile + 	    //		       "(new avail: " + tileAvail[tile.getTileNumber()] + ")");	    assert !(((FilterTraceNode)node).isFileInput() || 		     ((FilterTraceNode)node).isFileInput());	    	    //if this trace has file input take care of it,	    //assign the file reader and record that the tile reads a file...	    if (node.getPrevious().isInputTrace()) {		InputTraceNode in = (InputTraceNode)node.getPrevious();		//if this trace reads a file, make sure that we record that		//the tile is being used to read a file		if (in.hasFileInput()) {		    readsFile[tile.getTileNumber()] = true;		    assert in.getSingleEdge().getSrc().getPrevFilter().isPredefined();		    //set the tile for the file reader to tbe this tile		    in.getSingleEdge().getSrc().getPrevFilter().setXY(tile.getX(), 								      tile.getY());		}	    }	    //writes to a file, set tile for writer and record that the tile 	    //writes a file	    if (node.getNext().isOutputTrace()) {		OutputTraceNode out = (OutputTraceNode)node.getNext();		if (out.hasFileOutput()) {		    writesFile[tile.getTileNumber()] = true;		    assert out.getSingleEdge().getDest().getNextFilter().isPredefined();		    //set the tile		    out.getSingleEdge().getDest().getNextFilter().setXY(tile.getX(),									tile.getY());		}	    }		    //set file reading and writing	    //set the space time schedule?? Jasper's stuff	    //don't do it for the first node	    /*	    if (node != trace.getHead().getNext()) 		spSched.add(trace, ((FilterTraceNode)node).getY(),			  ((FilterTraceNode)node).getX());	    else //do this instead		spSched.addHead(trace, ((FilterTraceNode)node).getY(),				((FilterTraceNode)node).getX());	    */	    node = node.getNext();	}    }