From: <mrj...@us...> - 2008-08-05 05:38:51
|
Revision: 2931 http://tora.svn.sourceforge.net/tora/?rev=2931&view=rev Author: mrjohnson0 Date: 2008-08-05 05:39:00 +0000 (Tue, 05 Aug 2008) Log Message: ----------- remove old lock from commmit() and release() these shouldn't be needed anymore. change connection pool to wait for commit and release by default. this seems to solve some crashes when abusing the schema browser. Modified Paths: -------------- trunk/tora/src/toconnection.cpp trunk/tora/src/toconnectionpool.cpp trunk/tora/src/toconnectionpool.h Modified: trunk/tora/src/toconnection.cpp =================================================================== --- trunk/tora/src/toconnection.cpp 2008-08-04 15:45:45 UTC (rev 2930) +++ trunk/tora/src/toconnection.cpp 2008-08-05 05:39:00 UTC (rev 2931) @@ -807,8 +807,6 @@ void toConnection::commit(toConnectionSub *sub) { toBusy busy; - toLocker lock(Lock); - Connection->commit(sub); } @@ -821,8 +819,6 @@ void toConnection::rollback(toConnectionSub *sub) { toBusy busy; - toLocker lock(Lock); - Connection->rollback(sub); } Modified: trunk/tora/src/toconnectionpool.cpp =================================================================== --- trunk/tora/src/toconnectionpool.cpp 2008-08-04 15:45:45 UTC (rev 2930) +++ trunk/tora/src/toconnectionpool.cpp 2008-08-05 05:39:00 UTC (rev 2931) @@ -325,13 +325,25 @@ } -void toConnectionPool::commit() { - (new toRunnableThread(new toConnectionPoolExec(this, toConnectionPoolExec::Commit)))->start(); +void toConnectionPool::commit(bool wait) { + toConnectionPoolExec *ex = new toConnectionPoolExec( + this, + toConnectionPoolExec::Commit); + if(!wait) + (new toRunnableThread(ex))->start(); + else + ex->run(); } -void toConnectionPool::rollback() { - (new toRunnableThread(new toConnectionPoolExec(this, toConnectionPoolExec::Rollback)))->start(); +void toConnectionPool::rollback(bool wait) { + toConnectionPoolExec *ex = new toConnectionPoolExec( + this, + toConnectionPoolExec::Rollback); + if(!wait) + (new toRunnableThread(ex))->start(); + else + ex->run(); } Modified: trunk/tora/src/toconnectionpool.h =================================================================== --- trunk/tora/src/toconnectionpool.h 2008-08-04 15:45:45 UTC (rev 2930) +++ trunk/tora/src/toconnectionpool.h 2008-08-05 05:39:00 UTC (rev 2931) @@ -247,14 +247,14 @@ * Commit connections that are not busy * */ - void commit(void); + void commit(bool wait = true); /** * Rollback connections that are not busy * */ - void rollback(void); + void rollback(bool wait = true); /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |