From: <mrj...@us...> - 2008-05-20 08:18:54
|
Revision: 2767 http://tora.svn.sourceforge.net/tora/?rev=2767&view=rev Author: mrjohnson0 Date: 2008-05-20 01:18:52 -0700 (Tue, 20 May 2008) Log Message: ----------- add size() method to protect access to pool from test and exec threads Modified Paths: -------------- trunk/tora/src/toconnectionpool.cpp trunk/tora/src/toconnectionpool.h Modified: trunk/tora/src/toconnectionpool.cpp =================================================================== --- trunk/tora/src/toconnectionpool.cpp 2008-05-20 08:17:54 UTC (rev 2766) +++ trunk/tora/src/toconnectionpool.cpp 2008-05-20 08:18:52 UTC (rev 2767) @@ -69,7 +69,7 @@ void toConnectionPoolTest::test() { - for(int i = 0; Pool && i < Pool->Pool.size(); i++) { + for(int i = 0; Pool && i < Pool->size(); i++) { toConnectionPool::PooledState state = Pool->test(i); if(state == toConnectionPool::Busy) continue; @@ -99,7 +99,7 @@ void toConnectionPoolExec::run() { - for(int mem = 0; mem < Pool->Pool.size(); mem++) { + for(int mem = 0; mem < Pool->size(); mem++) { toConnectionSub *sub = Pool->steal(mem); if(!sub) continue; @@ -248,6 +248,12 @@ } +int toConnectionPool::size() { + QMutexLocker lock(&PoolLock); + return Pool.size(); +} + + toConnectionSub* toConnectionPool::steal(int member) { QMutexLocker lock(&PoolLock); return Pool[member]->Sub; Modified: trunk/tora/src/toconnectionpool.h =================================================================== --- trunk/tora/src/toconnectionpool.h 2008-05-20 08:17:54 UTC (rev 2766) +++ trunk/tora/src/toconnectionpool.h 2008-05-20 08:18:52 UTC (rev 2767) @@ -183,6 +183,7 @@ // this is used internally to test PooledState test(PooledSub *sub); PooledState test(int member); + int size(void); // get a specific connection. toConnectionSub* steal(int member); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |