These functions are cast and invoked as a MonoThreadStart (which requires to receive on arg, return one arg and be WINAPI on windwos), which could lead to cconv problems if the prototype is not matching.
#include <mono/utils/atomic.h>
#include <mono/utils/mono-coop-semaphore.h>
#include <mono/utils/hazard-pointer.h>
+#include <mono/io-layer/io-layer.h>
#ifndef HOST_WIN32
#include <pthread.h>
}
}
-static guint32
+static gsize WINAPI
finalizer_thread (gpointer unused)
{
MonoError error;
}
}
-static void
+static gsize WINAPI
selector_thread (gpointer data)
{
MonoError error;
if (mono_runtime_is_shutting_down ()) {
io_selector_running = FALSE;
- return;
+ return 0;
}
states = mono_g_hash_table_new_type (g_direct_hash, g_direct_equal, MONO_HASH_VALUE_GC, MONO_ROOT_SOURCE_THREAD_POOL, "i/o thread pool states table");
mono_g_hash_table_destroy (states);
io_selector_running = FALSE;
+
+ return 0;
}
/* Locking: threadpool_io->updates_lock must be held */
return res;
}
-static void
+static gsize WINAPI
worker_thread (gpointer data)
{
MonoThreadPoolWorker *worker;
static void hill_climbing_force_change (MonoThreadPoolWorker *worker, gint16 new_thread_count, ThreadPoolHeuristicStateTransition transition);
-static void
+static gsize WINAPI
monitor_thread (gpointer data)
{
MonoThreadPoolWorker *worker;