@@ -127,24 +127,26 @@ bool dbg_assert_has_failed()
127127 return dbg_assert_failing.load (std::memory_order_acquire);
128128}
129129
130- void dbg_assert_imp (const char *filename, int line, bool test, const char *msg )
130+ void dbg_assert_imp (const char *filename, int line, const char *fmt, ... )
131131{
132- if (!test)
132+ const bool already_failing = dbg_assert_has_failed ();
133+ dbg_assert_failing.store (true , std::memory_order_release);
134+ char msg[512 ];
135+ va_list args;
136+ va_start (args, fmt);
137+ str_format_v (msg, sizeof (msg), fmt, args);
138+ char error[512 ];
139+ str_format (error, sizeof (error), " %s(%d): %s" , filename, line, msg);
140+ va_end (args);
141+ log_error (" assert" , " %s" , error);
142+ if (!already_failing)
133143 {
134- const bool already_failing = dbg_assert_has_failed ();
135- dbg_assert_failing.store (true , std::memory_order_release);
136- char error[512 ];
137- str_format (error, sizeof (error), " %s(%d): %s" , filename, line, msg);
138- dbg_msg (" assert" , " %s" , error);
139- if (!already_failing)
140- {
141- DBG_ASSERT_HANDLER handler = dbg_assert_handler;
142- if (handler)
143- handler (error);
144- }
145- log_global_logger_finish ();
146- dbg_break ();
144+ DBG_ASSERT_HANDLER handler = dbg_assert_handler;
145+ if (handler)
146+ handler (error);
147147 }
148+ log_global_logger_finish ();
149+ dbg_break ();
148150}
149151
150152void dbg_break ()
@@ -911,12 +913,7 @@ void sphore_init(SEMAPHORE *sem)
911913 char aBuf[64 ];
912914 str_format (aBuf, sizeof (aBuf), " /%d.%p" , pid (), (void *)sem);
913915 *sem = sem_open (aBuf, O_CREAT | O_EXCL, S_IRWXU | S_IRWXG, 0 );
914- if (*sem == SEM_FAILED)
915- {
916- char aError[128 ];
917- str_format (aError, sizeof (aError), " sem_open failure, errno=%d, name='%s'" , errno, aBuf);
918- dbg_assert (false , aError);
919- }
916+ dbg_assert (*sem != SEM_FAILED, " sem_open failure, errno=%d, name='%s'" , errno, aBuf);
920917}
921918void sphore_wait (SEMAPHORE *sem)
922919{
0 commit comments