private boolean canWrite(Thread current)
	{
		if(writingThread != null && writingThread == current)
		{
			return true;
		}
		if(readersMap.size() == 1 && readersMap.containsKey(current))
		{
			return true;
		}
		if(writer > 0 || writeRequest > 0 || readersMap.size() > 0)
		{
			return false;
		}		
		return true;
		
	}