2 * threads-pthread.c: System-specific thread support
5 * Dick Porter (dick@ximian.com)
7 * (C) 2001 Ximian, Inc.
15 #include <mono/metadata/object.h>
16 #include <mono/metadata/threads-pthread.h>
18 pthread_t ves_icall_System_Threading_Thread_Start_internal(MonoObject *this,
22 MonoClassField *field;
23 void *(*start_func)(void *);
26 g_message("Trying to start a new thread: this (%p) start (%p)",
29 field=mono_class_get_field_from_name(mono_defaults.delegate_class, "method_ptr");
30 start_func= *(gpointer *)(((char *)start) + field->offset);
32 if(start_func==NULL) {
33 g_warning("Can't locate start method!");
34 /* Not sure if 0 can't be a valid pthread_t */
37 ret=pthread_create(&tid, NULL, start_func, NULL);
39 g_warning("pthread_create error: %s", strerror(ret));
43 g_message("Started thread ID %ld", tid);