Example #1
0
void Database::thread_proc_query()
{
	QueryBuffer * q;
	DatabaseConnection * con = GetFreeConnection();

	q = query_buffer.pop( );
	while( q != NULL )
	{
		PerformQueryBuffer( q, con );
		delete q;

		if( ThreadState == THREADSTATE_TERMINATE )
			break;

		q = query_buffer.pop( );
	}

	con->Busy.Release();

	// kill any queries
	q = query_buffer.pop_nowait( );
	while( q != NULL )
	{
		PerformQueryBuffer( q, NULL );
		delete q;

		q = query_buffer.pop_nowait( );
	}
}
Example #2
0
void Database::thread_proc_query()
{
	QueryBuffer* q;
	DatabaseConnection* con = GetFreeConnection();

	q = query_buffer.pop();
	while(1)
	{
		if(q != NULL)
		{
			PerformQueryBuffer(q, con);
			delete q;
		}

		if(GetThreadState() == THREADSTATE_TERMINATE)
			break;

		q = query_buffer.pop();
		if(q == NULL)
			arcpro::Sleep(10);
	}

	con->Busy.Release();

	// kill any queries
	q = query_buffer.pop();
	while(q != NULL)
	{
		PerformQueryBuffer(q, NULL);
		delete q;

		q = query_buffer.pop();
	}
}
Example #3
0
void Database::thread_proc_query()
{
	QueryBuffer * q;
	DatabaseConnection &con = GetFreeConnection();

	q = query_buffer.pop( );
	while( q != NULL )
	{
		PerformQueryBuffer( q, con );
		delete q;

		if( !m_threadRunning )
			break;

		q = query_buffer.pop( );
	}

	con.Busy.Release();

	// kill any queries
	q = query_buffer.pop_nowait( );
	while( q != NULL )
	{
		PerformQueryBuffer( q );
		delete q;

		q = query_buffer.pop_nowait( );
	}
}
Example #4
0
void Database::AddQueryBuffer(QueryBuffer* b)
{
	if(qt != NULL)
		query_buffer.push(b);
	else
	{
		PerformQueryBuffer(b, NULL);
		delete b;
	}
}