From: <hv...@us...> - 2013-06-30 14:02:55
|
Revision: 58276 http://sourceforge.net/p/firebird/code/58276 Author: hvlad Date: 2013-06-30 14:02:51 +0000 (Sun, 30 Jun 2013) Log Message: ----------- Fixed my bug introduced when porting page cache on fb3 Modified Paths: -------------- firebird/trunk/src/jrd/cch.cpp Modified: firebird/trunk/src/jrd/cch.cpp =================================================================== --- firebird/trunk/src/jrd/cch.cpp 2013-06-30 02:15:35 UTC (rev 58275) +++ firebird/trunk/src/jrd/cch.cpp 2013-06-30 14:02:51 UTC (rev 58276) @@ -2770,17 +2770,14 @@ CCH_unwind(tdbb, true); } } - bdb->release(tdbb, false); + // release lock before loosing control over bdb, it prevents + // concurrent operations on released lock if (release_flag) { PAGE_LOCK_RELEASE(tdbb, bcb, bdb->bdb_lock); } - else // re-post the lock if it was written - if ((bdb->bdb_ast_flags & BDB_blocking) && !(bdb->bdb_flags & BDB_dirty)) - { - PAGE_LOCK_RE_POST(tdbb, bcb, bdb->bdb_lock); - } + bdb->release(tdbb, !release_flag && !(bdb->bdb_flags & BDB_dirty)); flush.remove(ptr); } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |