Move rb_thread_cond_struct definition into thread_native.h

On Win32, currently, rb_nativethread_cond_t is an incomplete type
because it's a typedef for `struct rb_thread_cond_struct`. That means
you can't actually allocate a rb_nativethread_cond_t unless you also
include THREAD_IMPL_H (since its defined in thread_win32.h)
(alternatively, including vm_core.h also works).

Move the definition of rb_thread_cond_struct into thread_native.h to
alleviate this.
This commit is contained in:
KJ Tsanaktsidis 2023-05-26 12:02:30 +10:00 коммит произвёл Nobuyoshi Nakada
Родитель 8c4da473de
Коммит 54a74c4203
2 изменённых файлов: 5 добавлений и 5 удалений

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

@ -28,6 +28,11 @@ typedef union rb_thread_lock_union {
CRITICAL_SECTION crit; CRITICAL_SECTION crit;
} rb_nativethread_lock_t; } rb_nativethread_lock_t;
struct rb_thread_cond_struct {
struct cond_event_entry *next;
struct cond_event_entry *prev;
};
typedef struct rb_thread_cond_struct rb_nativethread_cond_t; typedef struct rb_thread_cond_struct rb_nativethread_cond_t;
#elif defined(HAVE_PTHREAD_H) #elif defined(HAVE_PTHREAD_H)

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

@ -21,11 +21,6 @@
WINBASEAPI BOOL WINAPI WINBASEAPI BOOL WINAPI
TryEnterCriticalSection(IN OUT LPCRITICAL_SECTION lpCriticalSection); TryEnterCriticalSection(IN OUT LPCRITICAL_SECTION lpCriticalSection);
struct rb_thread_cond_struct {
struct cond_event_entry *next;
struct cond_event_entry *prev;
};
struct rb_native_thread { struct rb_native_thread {
HANDLE thread_id; HANDLE thread_id;
HANDLE interrupt_event; HANDLE interrupt_event;