#include <pthread.h>
#include <os/kernel/OS.h>
+void
+mono_threads_platform_reset_priority(pthread_attr_t *attr)
+{
+ /* FIXME: Implement this on Haiku */
+}
+
void
mono_threads_platform_get_stack_bounds (guint8 **staddr, size_t *stsize)
{
#include <sys/resource.h>
-/* FIXME: Haiku lacks pthread_attr_setschedpolicy */
-#if !defined(__HAIKU__)
-static void
-reset_priority (pthread_attr_t *attr)
+#ifdef MONO_THREADS_PLATFORM_HAS_ATTR_SETSCHED
+void
+mono_threads_platform_reset_priority (pthread_attr_t *attr)
{
struct sched_param param;
gint res;
g_assert (!res);
#endif /* HAVE_PTHREAD_ATTR_SETSTACKSIZE */
-/* FIXME: Haiku lacks pthread_attr_setschedpolicy */
-#if !defined(__HAIKU__)
- reset_priority (&attr);
-#endif
+ mono_threads_platform_reset_priority (&attr);
if (stack_size) {
res = pthread_attr_getstacksize (&attr, &min_stack_size);
typedef gsize (*MonoThreadStart)(gpointer);
+#if !defined(__HAIKU__)
+#define MONO_THREADS_PLATFORM_HAS_ATTR_SETSCHED
+#endif /* !defined(__HAIKU__) */
+
#endif /* #ifdef HOST_WIN32 */
#ifndef MONO_INFINITE_WAIT
gint mono_threads_suspend_get_restart_signal (void);
gint mono_threads_suspend_get_abort_signal (void);
+#if defined(USE_POSIX_BACKEND)
+void mono_threads_platform_reset_priority (pthread_attr_t *attr);
+#endif /* defined(USE_POSIX_BACKEND) */
int mono_threads_platform_create_thread (MonoThreadStart thread_fn, gpointer thread_data, gsize* const stack_size, MonoNativeThreadId *out_tid);
void mono_threads_platform_get_stack_bounds (guint8 **staddr, size_t *stsize);
void mono_threads_platform_init (void);