mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Allow RUBY_DEBUG_LOG
format to be empty
GCC warns of empty format strings, perhaps because they have no effects in printf() and there are better ways than sprintf(). However, ruby_debug_log() adds informations other than the format, this warning is not the case.
This commit is contained in:
parent
58c8b6e862
commit
27173e3735
3 changed files with 16 additions and 7 deletions
10
thread.c
10
thread.c
|
@ -1353,14 +1353,14 @@ sleep_hrtime_until(rb_thread_t *th, rb_hrtime_t end, unsigned int fl)
|
||||||
void
|
void
|
||||||
rb_thread_sleep_forever(void)
|
rb_thread_sleep_forever(void)
|
||||||
{
|
{
|
||||||
RUBY_DEBUG_LOG("%s", "");
|
RUBY_DEBUG_LOG("");
|
||||||
sleep_forever(GET_THREAD(), SLEEP_SPURIOUS_CHECK);
|
sleep_forever(GET_THREAD(), SLEEP_SPURIOUS_CHECK);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
rb_thread_sleep_deadly(void)
|
rb_thread_sleep_deadly(void)
|
||||||
{
|
{
|
||||||
RUBY_DEBUG_LOG("%s", "");
|
RUBY_DEBUG_LOG("");
|
||||||
sleep_forever(GET_THREAD(), SLEEP_DEADLOCKABLE|SLEEP_SPURIOUS_CHECK);
|
sleep_forever(GET_THREAD(), SLEEP_DEADLOCKABLE|SLEEP_SPURIOUS_CHECK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1384,7 +1384,7 @@ rb_thread_sleep_deadly_allow_spurious_wakeup(VALUE blocker, VALUE timeout, rb_hr
|
||||||
rb_fiber_scheduler_block(scheduler, blocker, timeout);
|
rb_fiber_scheduler_block(scheduler, blocker, timeout);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
RUBY_DEBUG_LOG("%s", "");
|
RUBY_DEBUG_LOG("");
|
||||||
if (end) {
|
if (end) {
|
||||||
sleep_hrtime_until(GET_THREAD(), end, SLEEP_SPURIOUS_CHECK);
|
sleep_hrtime_until(GET_THREAD(), end, SLEEP_SPURIOUS_CHECK);
|
||||||
}
|
}
|
||||||
|
@ -1481,7 +1481,7 @@ blocking_region_begin(rb_thread_t *th, struct rb_blocking_region_buffer *region,
|
||||||
th->status = THREAD_STOPPED;
|
th->status = THREAD_STOPPED;
|
||||||
rb_ractor_blocking_threads_inc(th->ractor, __FILE__, __LINE__);
|
rb_ractor_blocking_threads_inc(th->ractor, __FILE__, __LINE__);
|
||||||
|
|
||||||
RUBY_DEBUG_LOG("%s", "");
|
RUBY_DEBUG_LOG("");
|
||||||
|
|
||||||
RB_GC_SAVE_MACHINE_CONTEXT(th);
|
RB_GC_SAVE_MACHINE_CONTEXT(th);
|
||||||
thread_sched_to_waiting(TH_SCHED(th));
|
thread_sched_to_waiting(TH_SCHED(th));
|
||||||
|
@ -1509,7 +1509,7 @@ blocking_region_end(rb_thread_t *th, struct rb_blocking_region_buffer *region)
|
||||||
th->status = region->prev_status;
|
th->status = region->prev_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
RUBY_DEBUG_LOG("%s", "");
|
RUBY_DEBUG_LOG("");
|
||||||
VM_ASSERT(th == GET_THREAD());
|
VM_ASSERT(th == GET_THREAD());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -746,7 +746,7 @@ static unsigned long __stdcall
|
||||||
timer_thread_func(void *dummy)
|
timer_thread_func(void *dummy)
|
||||||
{
|
{
|
||||||
rb_vm_t *vm = GET_VM();
|
rb_vm_t *vm = GET_VM();
|
||||||
RUBY_DEBUG_LOG("%s", "start");
|
RUBY_DEBUG_LOG("start");
|
||||||
rb_w32_set_thread_description(GetCurrentThread(), L"ruby-timer-thread");
|
rb_w32_set_thread_description(GetCurrentThread(), L"ruby-timer-thread");
|
||||||
while (WaitForSingleObject(timer_thread.lock,
|
while (WaitForSingleObject(timer_thread.lock,
|
||||||
TIME_QUANTUM_USEC/1000) == WAIT_TIMEOUT) {
|
TIME_QUANTUM_USEC/1000) == WAIT_TIMEOUT) {
|
||||||
|
@ -754,7 +754,7 @@ timer_thread_func(void *dummy)
|
||||||
ruby_sigchld_handler(vm); /* probably no-op */
|
ruby_sigchld_handler(vm); /* probably no-op */
|
||||||
rb_threadptr_check_signal(vm->ractor.main_thread);
|
rb_threadptr_check_signal(vm->ractor.main_thread);
|
||||||
}
|
}
|
||||||
RUBY_DEBUG_LOG("%s", "end");
|
RUBY_DEBUG_LOG("end");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,15 @@ void ruby_debug_log(const char *file, int line, const char *func_name, const cha
|
||||||
void ruby_debug_log_print(unsigned int n);
|
void ruby_debug_log_print(unsigned int n);
|
||||||
bool ruby_debug_log_filter(const char *func_name, const char *file_name);
|
bool ruby_debug_log_filter(const char *func_name, const char *file_name);
|
||||||
|
|
||||||
|
#if RBIMPL_COMPILER_IS(GCC) && defined(__OPTIMIZE__)
|
||||||
|
# define ruby_debug_log(...) \
|
||||||
|
RB_GNUC_EXTENSION_BLOCK( \
|
||||||
|
RBIMPL_WARNING_PUSH(); \
|
||||||
|
RBIMPL_WARNING_IGNORED(-Wformat-zero-length); \
|
||||||
|
ruby_debug_log(__VA_ARGS__); \
|
||||||
|
RBIMPL_WARNING_POP())
|
||||||
|
#endif
|
||||||
|
|
||||||
// convenient macro to log even if the USE_RUBY_DEBUG_LOG macro is not specified.
|
// convenient macro to log even if the USE_RUBY_DEBUG_LOG macro is not specified.
|
||||||
// You can use this macro for temporary usage (you should not commit it).
|
// You can use this macro for temporary usage (you should not commit it).
|
||||||
#define _RUBY_DEBUG_LOG(...) ruby_debug_log(__FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__)
|
#define _RUBY_DEBUG_LOG(...) ruby_debug_log(__FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__)
|
||||||
|
|
Loading…
Reference in a new issue