[kdbus] sync with kdbus (kdbus.h - commit: 5ae1ecac44cb)
[platform/upstream/glib.git] / glib / gthreadprivate.h
index 05a91cf..198b29a 100644 (file)
  *
  * 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_equal_simple(thread1, thread2)                        \
-   ((thread1).dummy_pointer == (thread2).dummy_pointer)
-# 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_equal_simple(thread1, thread2)                        \
-   (memcmp (&(thread1), &(thread2), GLIB_SIZEOF_SYSTEM_THREAD) == 0)
-# define g_system_thread_assign(dest, src)                             \
-   (memcpy (&(dest), &(src), GLIB_SIZEOF_SYSTEM_THREAD))
-#endif /* GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P */
+typedef struct _GRealThread GRealThread;
+struct  _GRealThread
+{
+  GThread thread;
 
-#define g_system_thread_equal(thread1, thread2)                                \
-  (g_thread_functions_for_glib_use.thread_equal ?                      \
-   g_thread_functions_for_glib_use.thread_equal (&(thread1), &(thread2)) :\
-   g_system_thread_equal_simple((thread1), (thread2)))
+  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);
 
-/* base initializers, may only use g_mutex_new(), g_cond_new() */
-G_GNUC_INTERNAL void _g_mem_thread_init_noprivate_nomessage (void);
-/* initializers that may also use g_private_new() */
-G_GNUC_INTERNAL void _g_slice_thread_init_nomessage        (void);
-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__ */