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

Fixed and improved diagnostics when thread failed to start

This commit is contained in:
alexpeshkoff 2010-05-20 10:36:19 +00:00
parent dc4452eb0e
commit 42ffe4fcf8

View File

@ -1790,23 +1790,19 @@ bool LockManager::create_process(ISC_STATUS* status_vector)
return false;
#ifdef USE_BLOCKING_THREAD
const ULONG status = gds__thread_start(blocking_action_thread, this, THREAD_high, 0, 0);
if (status)
try
{
*status_vector++ = isc_arg_gds;
*status_vector++ = isc_lockmanerr;
*status_vector++ = isc_arg_gds;
*status_vector++ = isc_sys_request;
*status_vector++ = isc_arg_string;
#ifdef WIN_NT
*status_vector++ = (ISC_STATUS) "CreateThread";
*status_vector++ = isc_arg_win32;
#else
*status_vector++ = (ISC_STATUS) "thr_create";
*status_vector++ = isc_arg_unix;
#endif
*status_vector++ = status;
*status_vector++ = isc_arg_end;
ThreadStart::start(blocking_action_thread, this, THREAD_high, 0);
}
catch (const Firebird::Exception& ex)
{
ISC_STATUS_ARRAY vector;
ex.stuff_exception(vector);
Firebird::Arg::Gds result(isc_lockmanerr);
result.append(Firebird::Arg::StatusVector(vector));
result.copyTo(status_vector);
return false;
}
#endif