@Override
	public void run() 
	{
		boolean S1IsFed=false ;
		int countFedJoins;
		countFedJoins=(new FedJoinCounter().countFedJoins(_SubQueriesToExecute.get(0))) ;
		if (countFedJoins==0)
			ExeuteSingleEndpoint(_SubQueriesToExecute.get(0));
		else
		{
			EddyExecuter(_SubQueriesToExecute.get(0)) ;
			S1IsFed=true ;
		}
		countFedJoins=(new FedJoinCounter().countFedJoins(_SubQueriesToExecute.get(1))) ;
		if (countFedJoins==0)
			ExeuteSingleEndpoint(_SubQueriesToExecute.get(1));
		else
		{
			if (S1IsFed)
			{
				//in khob nist bayad exception bede 
					System.out.println("Can not execute a union with 2 feds.");
					return ;
			}
			EddyExecuter(_SubQueriesToExecute.get(1)) ;
		}
		byte numOfFinishedSubQueries=0 ;
		while (true)
		{
			try
			{
				Tuple NextResult =_TempQueryResults.take() ;
				if (NextResult instanceof PoisonPill)
				{
					numOfFinishedSubQueries++ ;
					if (numOfFinishedSubQueries==2)
					{
						_FinalQueryResults.put(NextResult);
						return ;
					}
				}
				else
				{
					_FinalQueryResults.put(NextResult);
				}
			}
			catch (InterruptedException e) 
			{
				e.printStackTrace();
			}
			
		}
		
	}