#include "utils/mono-threads.h"
#include "utils/mono-conc-hashtable.h"
#include "utils/checked-build.h"
+#include "metadata/w32handle.h"
#include <stdlib.h>
#include <string.h>
pw_sr_thread (void *arg)
{
int i, idx = 1000 * GPOINTER_TO_INT (arg);
- mono_thread_info_attach ((gpointer)&arg);
+ mono_thread_info_attach ();
for (i = 0; i < 1000; ++i) {
mono_os_mutex_lock (&global_mutex);
pr_sw_thread (void *arg)
{
int i = 0, idx = 100 * GPOINTER_TO_INT (arg);
- mono_thread_info_attach ((gpointer)&arg);
+ mono_thread_info_attach ();
while (i < 100) {
gpointer res = mono_conc_hashtable_lookup (hash, GINT_TO_POINTER (i + idx + 1));
pw_pr_r_thread (void *arg)
{
int key, val, i;
- mono_thread_info_attach ((gpointer)&arg);
+ mono_thread_info_attach ();
/* i will not be incremented as long as running is set to 1, this guarantee that
we loop over all the keys at least once after the writer threads have finished */
{
int i, idx = 1000 * GPOINTER_TO_INT (arg);
- mono_thread_info_attach ((gpointer)&arg);
+ mono_thread_info_attach ();
for (i = idx; i < idx + 1000; i++) {
mono_os_mutex_lock (&global_mutex);
{
int i, idx = 1000 * GPOINTER_TO_INT (arg);
- mono_thread_info_attach ((gpointer)&arg);
+ mono_thread_info_attach ();
for (i = idx; i < idx + 1000; i++) {
mono_os_mutex_lock (&global_mutex);
int
main (void)
{
- MonoThreadInfoCallbacks cb = { NULL };
MonoThreadInfoRuntimeCallbacks ticallbacks;
int res = 0;
CHECKED_MONO_INIT ();
- mono_threads_init (&cb, sizeof (MonoThreadInfo));
+ mono_thread_info_init (sizeof (MonoThreadInfo));
memset (&ticallbacks, 0, sizeof (ticallbacks));
ticallbacks.thread_state_init = thread_state_init;
- mono_threads_runtime_init (&ticallbacks);
+ mono_thread_info_runtime_init (&ticallbacks);
+#ifndef HOST_WIN32
+ mono_w32handle_init ();
+#endif
- mono_thread_info_attach ((gpointer)&cb);
+ mono_thread_info_attach ();
// benchmark_conc ();
// benchmark_glib ();