if (!isSynchronized(ancestor, current.incoming[i])) return false;
if (isSynchronized(ancestor, current.incoming[i])) return true;
	private static boolean isSynchronized(FlatNode ancestor, FlatNode current) 	{	    if (ancestor == current) 		return true;	    ///check the pop rate	    if (current.isFilter())		if (((SIRFilter)current.contents).getPopInt() == 0)		    return false;	    //check all the incoming arcs of the joiner return 	    //true if all of them are true...	    for (int i = 0; i < current.incoming.length; i++)		if (!isSynchronized(ancestor, current.incoming[i]))		    return false;	    return true;    	}