Compile disabled code for thread cache always

This commit is contained in:
Nobuyoshi Nakada 2023-06-29 00:08:36 +09:00
Родитель e7dc8f0b27
Коммит c1432a4816
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 3582D74E1FEE4465
4 изменённых файлов: 19 добавлений и 27 удалений

Просмотреть файл

@ -5437,6 +5437,9 @@ Init_Thread(void)
rb_thread_create_timer_thread(); rb_thread_create_timer_thread();
Init_thread_sync(); Init_thread_sync();
// TODO: Suppress unused function warning for now
if (0) rb_thread_sched_destroy(NULL);
} }
int int

Просмотреть файл

@ -46,12 +46,10 @@ rb_thread_sched_init(struct rb_thread_sched *sched)
{ {
} }
#if 0
static void static void
rb_thread_sched_destroy(struct rb_thread_sched *sched) rb_thread_sched_destroy(struct rb_thread_sched *sched)
{ {
} }
#endif
// Do nothing for mutex guard // Do nothing for mutex guard
void void

Просмотреть файл

@ -617,7 +617,6 @@ rb_thread_sched_init(struct rb_thread_sched *sched)
sched->wait_yield = 0; sched->wait_yield = 0;
} }
#if 0
// TODO // TODO
static void clear_thread_cache_altstack(void); static void clear_thread_cache_altstack(void);
@ -637,7 +636,6 @@ rb_thread_sched_destroy(struct rb_thread_sched *sched)
} }
clear_thread_cache_altstack(); clear_thread_cache_altstack();
} }
#endif
#if defined(HAVE_WORKING_FORK) #if defined(HAVE_WORKING_FORK)
static void thread_cache_reset(void); static void thread_cache_reset(void);
@ -747,8 +745,12 @@ Init_native_thread(rb_thread_t *main_th)
native_thread_init(main_th->nt); native_thread_init(main_th->nt);
} }
#ifndef USE_THREAD_CACHE #if defined(USE_THREAD_CACHE) && !(USE_THREAD_CACHE+0)
#define USE_THREAD_CACHE 1 # undef USE_THREAD_CACHE
# define USE_THREAD_CACHE 0
#else
# undef USE_THREAD_CACHE
# define USE_THREAD_CACHE 1
#endif #endif
static void static void
@ -1092,10 +1094,7 @@ thread_start_func_1(void *th_ptr)
#endif #endif
RB_ALTSTACK_INIT(void *altstack, th->nt->altstack); RB_ALTSTACK_INIT(void *altstack, th->nt->altstack);
#if USE_THREAD_CACHE do {
thread_start:
#endif
{
#if !defined USE_NATIVE_THREAD_INIT #if !defined USE_NATIVE_THREAD_INIT
VALUE stack_start; VALUE stack_start;
#endif #endif
@ -1114,15 +1113,12 @@ thread_start_func_1(void *th_ptr)
#else #else
thread_start_func_2(th, &stack_start); thread_start_func_2(th, &stack_start);
#endif #endif
} while (USE_THREAD_CACHE &&
/* cache thread */
(th = register_cached_thread_and_wait(RB_ALTSTACK(altstack))) != 0);
if (!USE_THREAD_CACHE) {
RB_ALTSTACK_FREE(altstack);
} }
#if USE_THREAD_CACHE
/* cache thread */
if ((th = register_cached_thread_and_wait(RB_ALTSTACK(altstack))) != 0) {
goto thread_start;
}
#else
RB_ALTSTACK_FREE(altstack);
#endif
return 0; return 0;
} }
@ -1196,7 +1192,8 @@ static void thread_cache_reset(void) { }
static int static int
use_cached_thread(rb_thread_t *th) use_cached_thread(rb_thread_t *th)
{ {
#if USE_THREAD_CACHE if (!USE_THREAD_CACHE) return 0;
struct cached_thread_entry *entry; struct cached_thread_entry *entry;
rb_native_mutex_lock(&thread_cache_lock); rb_native_mutex_lock(&thread_cache_lock);
@ -1209,16 +1206,14 @@ use_cached_thread(rb_thread_t *th)
} }
rb_native_mutex_unlock(&thread_cache_lock); rb_native_mutex_unlock(&thread_cache_lock);
return !!entry; return !!entry;
#endif
return 0;
} }
#if 0
// TODO // TODO
static void static void
clear_thread_cache_altstack(void) clear_thread_cache_altstack(void)
{ {
#if USE_THREAD_CACHE if (!USE_THREAD_CACHE) return;
struct cached_thread_entry *entry; struct cached_thread_entry *entry;
rb_native_mutex_lock(&thread_cache_lock); rb_native_mutex_lock(&thread_cache_lock);
@ -1228,9 +1223,7 @@ clear_thread_cache_altstack(void)
RB_ALTSTACK_FREE(altstack); RB_ALTSTACK_FREE(altstack);
} }
rb_native_mutex_unlock(&thread_cache_lock); rb_native_mutex_unlock(&thread_cache_lock);
#endif
} }
#endif
static struct rb_native_thread * static struct rb_native_thread *
native_thread_alloc(void) native_thread_alloc(void)

Просмотреть файл

@ -154,14 +154,12 @@ rb_thread_sched_init(struct rb_thread_sched *sched)
sched->lock = w32_mutex_create(); sched->lock = w32_mutex_create();
} }
#if 0
void void
rb_thread_sched_destroy(struct rb_thread_sched *sched) rb_thread_sched_destroy(struct rb_thread_sched *sched)
{ {
if (GVL_DEBUG) fprintf(stderr, "sched destroy\n"); if (GVL_DEBUG) fprintf(stderr, "sched destroy\n");
CloseHandle(sched->lock); CloseHandle(sched->lock);
} }
#endif
rb_thread_t * rb_thread_t *
ruby_thread_from_native(void) ruby_thread_from_native(void)