NonblockingConnect* ConnectPool::connect(const std::string& address, uint16 port)
{
	fast_free();

	for (int i = 0; i < kPoolSize; i++)
	{
		if (m_pool[i].second && !m_pool[i].first)
		{
			m_pool[i].second = false;
			m_pool[i].first = new NonblockingConnect(address, port);
			return m_pool[i].first;
		}
	}

	return 0;
}
NonblockingConnect* ConnectPool::connect(const IPaddress& ip)
{
	fast_free();

	for (int i = 0; i < kPoolSize; i++)
	{
		if (m_pool[i].second && !m_pool[i].first)
		{
			m_pool[i].second = false;
			m_pool[i].first = new NonblockingConnect(ip);
			return m_pool[i].first;
		}
	}

	return 0;
}
 WEAK void safe_free(void *ptr) {
     return fast_free(ptr);
 }