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( ); } }
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(); } }
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( ); } }
void Database::AddQueryBuffer(QueryBuffer* b) { if(qt != NULL) query_buffer.push(b); else { PerformQueryBuffer(b, NULL); delete b; } }