8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-25 05:23:02 +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; return false;
#ifdef USE_BLOCKING_THREAD #ifdef USE_BLOCKING_THREAD
const ULONG status = gds__thread_start(blocking_action_thread, this, THREAD_high, 0, 0); try
if (status)
{ {
*status_vector++ = isc_arg_gds; ThreadStart::start(blocking_action_thread, this, THREAD_high, 0);
*status_vector++ = isc_lockmanerr; }
*status_vector++ = isc_arg_gds; catch (const Firebird::Exception& ex)
*status_vector++ = isc_sys_request; {
*status_vector++ = isc_arg_string; ISC_STATUS_ARRAY vector;
#ifdef WIN_NT ex.stuff_exception(vector);
*status_vector++ = (ISC_STATUS) "CreateThread";
*status_vector++ = isc_arg_win32; Firebird::Arg::Gds result(isc_lockmanerr);
#else result.append(Firebird::Arg::StatusVector(vector));
*status_vector++ = (ISC_STATUS) "thr_create"; result.copyTo(status_vector);
*status_vector++ = isc_arg_unix;
#endif
*status_vector++ = status;
*status_vector++ = isc_arg_end;
return false; return false;
} }
#endif #endif