-
-/* Only access thread state with blockables blocked. */
-static inline lispobj
-thread_state(struct thread *thread)
-{
- lispobj state;
- pthread_mutex_lock(thread->state_lock);
- state = thread->state;
- pthread_mutex_unlock(thread->state_lock);
- return state;
-}
-
-static inline void
-set_thread_state(struct thread *thread, lispobj state)
-{
- pthread_mutex_lock(thread->state_lock);
- thread->state = state;
- pthread_cond_broadcast(thread->state_cond);
- pthread_mutex_unlock(thread->state_lock);
-}
-
-static inline void
-wait_for_thread_state_change(struct thread *thread, lispobj state)
-{
- pthread_mutex_lock(thread->state_lock);
- while (thread->state == state)
- pthread_cond_wait(thread->state_cond, thread->state_lock);
- pthread_mutex_unlock(thread->state_lock);
-}
-
+lispobj thread_state(struct thread *thread);
+void set_thread_state(struct thread *thread, lispobj state);
+void wait_for_thread_state_change(struct thread *thread, lispobj state);