@Override
	public void recoverRoomStats()
	{
		synchronized(roomRecoverMarker)
		{
			roomRecoverMarker[0]++;
			if(roomRecoverMarker[0]!=1)
			{
				return;
			}
			try
			{
				reallyRecoverRoomStats();
				roomRecoverMarker[0]--;
				if(roomRecoverMarker[0]>0)
					reallyRecoverRoomStats();
			}
			finally
			{
				roomRecoverMarker[0]=0;
			}
		}
	}