#ifndef _GLIBCXX_GCC_GTHR_SINGLE_H
#define _GLIBCXX_GCC_GTHR_SINGLE_H
typedef int __gthread_mutex_t;
typedef int __gthread_recursive_mutex_t;
#define __GTHREAD_MUTEX_INIT 0
#ifdef __cplusplus
#define _GLIBCXX_UNUSED(x)
#else
#define _GLIBCXX_UNUSED(x) x __attribute__((unused))
#endif
#ifdef _LIBOBJC
static void *thread_local_storage = NULL;
static inline int
__gthread_objc_init_thread_system (void)
{
return -1;
}
static inline int
__gthread_objc_close_thread_system (void)
{
return -1;
}
static inline objc_thread_t
__gthread_objc_thread_detach (void (* func)(void *), void * _GLIBCXX_UNUSED(arg))
{
return NULL;
}
static inline int
__gthread_objc_thread_set_priority (int _GLIBCXX_UNUSED(priority))
{
return -1;
}
static inline int
__gthread_objc_thread_get_priority (void)
{
return OBJC_THREAD_INTERACTIVE_PRIORITY;
}
static inline void
__gthread_objc_thread_yield (void)
{
return;
}
static inline int
__gthread_objc_thread_exit (void)
{
return -1;
}
static inline objc_thread_t
__gthread_objc_thread_id (void)
{
return (objc_thread_t) 1;
}
static inline int
__gthread_objc_thread_set_data (void *value)
{
thread_local_storage = value;
return 0;
}
static inline void *
__gthread_objc_thread_get_data (void)
{
return thread_local_storage;
}
static inline int
__gthread_objc_mutex_allocate (objc_mutex_t _GLIBCXX_UNUSED(mutex))
{
return 0;
}
static inline int
__gthread_objc_mutex_deallocate (objc_mutex_t _GLIBCXX_UNUSED(mutex))
{
return 0;
}
static inline int
__gthread_objc_mutex_lock (objc_mutex_t _GLIBCXX_UNUSED(mutex))
{
return 0;
}
static inline int
__gthread_objc_mutex_trylock (objc_mutex_t _GLIBCXX_UNUSED(mutex))
{
return 0;
}
static inline int
__gthread_objc_mutex_unlock (objc_mutex_t _GLIBCXX_UNUSED(mutex))
{
return 0;
}
static inline int
__gthread_objc_condition_allocate (objc_condition_t _GLIBCXX_UNUSED(condition))
{
return 0;
}
static inline int
__gthread_objc_condition_deallocate (objc_condition_t _GLIBCXX_UNUSED(condition))
{
return 0;
}
static inline int
__gthread_objc_condition_wait (objc_condition_t _GLIBCXX_UNUSED(condition),
objc_mutex_t _GLIBCXX_UNUSED(mutex))
{
return 0;
}
static inline int
__gthread_objc_condition_broadcast (objc_condition_t _GLIBCXX_UNUSED(condition))
{
return 0;
}
static inline int
__gthread_objc_condition_signal (objc_condition_t _GLIBCXX_UNUSED(condition))
{
return 0;
}
#else
static inline int
__gthread_active_p (void)
{
return 0;
}
static inline int
__gthread_mutex_lock (__gthread_mutex_t * _GLIBCXX_UNUSED(mutex))
{
return 0;
}
static inline int
__gthread_mutex_trylock (__gthread_mutex_t * _GLIBCXX_UNUSED(mutex))
{
return 0;
}
static inline int
__gthread_mutex_unlock (__gthread_mutex_t * _GLIBCXX_UNUSED(mutex))
{
return 0;
}
static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
{
return __gthread_mutex_lock (mutex);
}
static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
{
return __gthread_mutex_trylock (mutex);
}
static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
{
return __gthread_mutex_unlock (mutex);
}
#endif
#undef _GLIBCXX_UNUSED
#endif