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

Fix bug introduced during C->C++ porting effort.

One of the consequences of this bug were mentioned in the SF#750664
This commit is contained in:
skidder 2004-01-09 01:06:12 +00:00
parent 47a5efb1e3
commit b3b58e0410

View File

@ -1180,6 +1180,8 @@ void CCH_fini(TDBB tdbb)
DBB dbb = tdbb->tdbb_database;
BOOLEAN flush_error = FALSE;
do {
try {
/* If we've been initialized, either flush buffers
@ -1265,17 +1267,24 @@ void CCH_fini(TDBB tdbb)
#endif
}
return;
} // try
catch (const std::exception&)
{
if (!flush_error) {
// Even if we were unable to flush our dirty buffers
// let's free resources and close files to prevent server collapse
flush_error = TRUE;
continue;
}
else {
ERR_punt();
}
}
} while (true);
}