}
void
-g_system_thread_self (gpointer thread)
-{
- *(pthread_t*)thread = pthread_self();
-}
-
-void
g_system_thread_set_name (const gchar *name)
{
#ifdef HAVE_SYS_PRCTL_H
};
void
-g_system_thread_self (gpointer thread)
-{
- GThreadData *self = TlsGetValue (g_thread_self_tls);
-
- if (!self)
- {
- /* This should only happen for the main thread! */
- HANDLE handle = GetCurrentThread ();
- HANDLE process = GetCurrentProcess ();
- self = g_new (GThreadData, 1);
- win32_check_for_error (DuplicateHandle (process, handle, process,
- &self->thread, 0, FALSE,
- DUPLICATE_SAME_ACCESS));
- win32_check_for_error (TlsSetValue (g_thread_self_tls, self));
- self->func = NULL;
- self->data = NULL;
- self->joinable = FALSE;
- }
-
- *(GThreadData **)thread = self;
-}
-
-void
g_system_thread_exit (void)
{
_endthreadex (0);
typedef struct _GRealThread GRealThread;
typedef void (*GThreadSetup) (GRealThread *thread);
-G_GNUC_INTERNAL void g_system_thread_self (gpointer thread);
G_GNUC_INTERNAL void g_system_thread_join (gpointer thread);
G_GNUC_INTERNAL void g_system_thread_create (GThreadFunc func,
gpointer data,