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:
parent
47a5efb1e3
commit
b3b58e0410
@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user