This function creates a new thread. The new thread starts by invoking
func with the argument data. The thread will run until func returns
or until g_thread_exit() is called from the new thread. The return value
of func becomes the return value of the thread, which can be obtained
with g_thread_join().
The name can be useful for discriminating threads in a debugger.
It is not used for other purposes and does not have to be unique.
Some systems restrict the length of name to 16 bytes.
If the thread can not be created the program aborts. See
g_thread_try_new() if you want to attempt to deal with failures.
To free the struct returned by this function, use g_thread_unref().
Note that g_thread_join() implicitly unrefs the GThread as well.
Since 2.32
This function creates a new thread. The new thread starts by invoking func with the argument data. The thread will run until func returns or until g_thread_exit() is called from the new thread. The return value of func becomes the return value of the thread, which can be obtained with g_thread_join(). The name can be useful for discriminating threads in a debugger. It is not used for other purposes and does not have to be unique. Some systems restrict the length of name to 16 bytes. If the thread can not be created the program aborts. See g_thread_try_new() if you want to attempt to deal with failures. To free the struct returned by this function, use g_thread_unref(). Note that g_thread_join() implicitly unrefs the GThread as well. Since 2.32