*
* You should have received a copy of the GNU Lesser General Public
* License along with the Gnome Library; see the file COPYING.LIB. If not,
- * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_THREADPRIVATE_H__
#define __G_THREADPRIVATE_H__
-G_BEGIN_DECLS
+#include "deprecated/gthread.h"
-/* System thread identifier comparison and assignment */
-#if GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P
-# define g_system_thread_assign(dest, src) \
- ((dest).dummy_pointer = (src).dummy_pointer)
-#else /* GLIB_SIZEOF_SYSTEM_THREAD != SIZEOF_VOID_P */
-# define g_system_thread_assign(dest, src) \
- (memcpy (&(dest), &(src), GLIB_SIZEOF_SYSTEM_THREAD))
-#endif /* GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P */
-
-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,
- gulong stack_size,
- gboolean joinable,
- gpointer thread,
- GError **error);
-G_GNUC_INTERNAL gboolean g_system_thread_equal (gpointer thread1,
- gpointer thread2);
+typedef struct _GRealThread GRealThread;
+struct _GRealThread
+{
+ GThread thread;
-G_GNUC_INTERNAL void g_system_thread_exit (void);
+ gint ref_count;
+ gboolean ours;
+ gchar *name;
+ gpointer retval;
+};
-/* Is called from gthread/gthread-impl.c */
-void g_thread_init_glib (void);
+/* system thread implementation (gthread-posix.c, gthread-win32.c) */
+void g_system_thread_wait (GRealThread *thread);
-/* initializers that may also use g_private_new() */
-G_GNUC_INTERNAL void _g_messages_thread_init_nomessage (void);
+GRealThread * g_system_thread_new (GThreadFunc func,
+ gulong stack_size,
+ GError **error);
+void g_system_thread_free (GRealThread *thread);
-/* full fledged initializers */
-G_GNUC_INTERNAL void _g_thread_impl_init (void);
+void g_system_thread_exit (void);
+void g_system_thread_set_name (const gchar *name);
-struct _GPrivate
-{
- gpointer single_value;
- gboolean ready;
-#ifdef G_OS_WIN32
- gint index;
-#else
- pthread_key_t key;
-#endif
-};
-G_GNUC_INTERNAL void g_private_init (GPrivate *key,
- GDestroyNotify notify);
+/* gthread.c */
+GThread * g_thread_new_internal (const gchar *name,
+ GThreadFunc proxy,
+ GThreadFunc func,
+ gpointer data,
+ gsize stack_size,
+ GError **error);
-G_END_DECLS
+gpointer g_thread_proxy (gpointer thread);
#endif /* __G_THREADPRIVATE_H__ */