8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 21:23:03 +01:00

Fixed deadlock privately reported by Dmitry Yemanov

This commit is contained in:
alexpeshkoff 2014-06-23 11:17:25 +00:00
parent a9f154f974
commit 69475936c8

View File

@ -1585,6 +1585,9 @@ JAttachment* FB_CARG JProvider::attachDatabase(IStatus* user_status, const char*
dbb->dbb_crypto_manager->attach(tdbb, attachment); dbb->dbb_crypto_manager->attach(tdbb, attachment);
} }
// Basic DBB initialization complete
initGuard.leave();
// Attachments to a ReadOnly database need NOT do garbage collection // Attachments to a ReadOnly database need NOT do garbage collection
if (dbb->readOnly()) if (dbb->readOnly())
attachment->att_flags |= ATT_no_cleanup; attachment->att_flags |= ATT_no_cleanup;
@ -1783,8 +1786,6 @@ JAttachment* FB_CARG JProvider::attachDatabase(IStatus* user_status, const char*
CCH_release_exclusive(tdbb); CCH_release_exclusive(tdbb);
initGuard.leave();
if (attachment->att_trace_manager->needs(TRACE_EVENT_ATTACH)) if (attachment->att_trace_manager->needs(TRACE_EVENT_ATTACH))
{ {
TraceConnectionImpl conn(attachment); TraceConnectionImpl conn(attachment);