Project

General

Profile

Actions

Feature #10134

closed

[PATCH] thread_pthread: prefer native types/functions

Added by normalperson (Eric Wong) over 9 years ago. Updated over 9 years ago.

Status:
Closed
Target version:
[ruby-core:64364]

Description

This will make it easier for us to try alternative mutex/condvar
implementations while still using pthreads for thread management.
It may be worth trying alternative mutexes/condvars (e.g. based on
atomics + futexes) if they can be significantly cheaper/faster.

I'll commit in a few days unless there's a good reason for exposing
pthread_* in more places than we need.


Files

thread_native.patch (6.13 KB) thread_native.patch normalperson (Eric Wong), 08/14/2014 09:15 PM

Updated by ko1 (Koichi Sasada) over 9 years ago

+1

--
// SASADA Koichi at atdot dot net

Actions #2

Updated by Anonymous over 9 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Applied in changeset r47185.


thread_pthread: prefer rb_nativethread* types/functions

This will make it easier for us to try alternative mutex/condvar
implementations while still using pthreads for thread management.
[Feature #10134]

  • thread_pthread.h: define RB_NATIVETHREAD_LOCK_INIT and
    RB_NATIVETHREAD_COND_INIT macros

  • thread_pthread.c (native_mutex_lock, native_mutex_unlock,
    native_mutex_trylock, native_mutex_initialize,
    native_mutex_destroy, native_cond_wait):
    use rb_nativethread_lock_t instead of pthread_mutex_t

  • thread_pthread.c (native_mutex_debug): make argument type-agnostic
    to avoid later cast.

  • thread_pthread.c (register_cached_thread_and_wait):
    replace PTHREAD_COND_INITIALIZER with RB_NATIVETHREAD_COND_INIT,
    use native_mutex_{lock,unlock}

  • thread_pthread.c (use_cached_thread):
    use native_mutex_{lock,unlock}

  • thread_pthread.c (native_sleep):
    use rb_nativethread_lock_t to match th->interrupt_lock,
    use native_mutex_{lock,unlock}

  • thread_pthread.c (timer_thread_lock): use rb_nativethread_lock_t type

Actions

Also available in: Atom PDF

Like0
Like0Like0