Hi Yann,

Am 19.12.2016 um 01:55 schrieb Yann Ylavic:
On Sat, Dec 17, 2016 at 6:48 PM, Rainer Jung <rainer.j...@kippdata.de> wrote:
This commit introduced a new dependency on pthread_mutex_timedlock. Although
its presence is detected by configure and locks/unix/thread_mutex.c checks
HAVE_PTHREAD_MUTEX_TIMEDLOCK and provides an alternative implementation if
it is not defined, file locks/unix/proc_mutex.c uses pthread_mutex_timedlock
unconditionally.

Thanks Rainer for noticing, hopefully fixed in r1774973.

looks good from visually checking.

I wonder if we could fall back to using pthread_cond_timewait() like
we do for thread_mutex, but that'd require
pthread_condattr_setpshared() to be available on the system.
Is it the case at least on this older Solaris?

Yes, Solaris 8 has it, get and set. They are in the man pages, in pthread.h and I find symbols in libpthread.so.

The full pthread function list taken from the Solaris 8 man page:

pthread_atfork()
pthread_attr_destroy()
pthread_attr_getdetachstate()
pthread_attr_getguardsize()
pthread_attr_getinheritsched()
pthread_attr_getschedparam()
pthread_attr_getschedpolicy()
pthread_attr_getscope()
pthread_attr_getstackaddr()
pthread_attr_getstacksize()
pthread_attr_init()
pthread_attr_setdetachstate()
pthread_attr_setguardsize()
pthread_attr_setinheritsched()
pthread_attr_setschedparam()
pthread_attr_setschedpolicy()
pthread_attr_setscope()
pthread_attr_setstackaddr()
pthread_attr_setstacksize()
pthread_cancel()
pthread_cleanup_pop()
pthread_cleanup_push()
pthread_cond_broadcast()
pthread_cond_destroy()
pthread_cond_init()
pthread_cond_signal()
pthread_cond_timedwait()
pthread_cond_wait()
pthread_condattr_destroy()
pthread_condattr_getpshared()
pthread_condattr_init()
pthread_condattr_setpshared()
pthread_create()
pthread_detach()
pthread_equal()
pthread_exit()
pthread_getconcurrency()
pthread_getschedparam()
pthread_getspecific()
pthread_join()
pthread_key_create()
pthread_key_delete()
pthread_kill()
pthread_mutex_destroy()
pthread_mutex_getprioceiling()
pthread_mutex_init()
pthread_mutex_lock()
pthread_mutex_setprioceiling()
pthread_mutex_trylock()
pthread_mutex_unlock()
pthread_mutexattr_destroy()
pthread_mutexattr_getprioceiling()
pthread_mutexattr_getprotocol()
pthread_mutexattr_getpshared()
pthread_mutexattr_gettype()
pthread_mutexattr_init()
pthread_mutexattr_setprioceiling()
pthread_mutexattr_setprotocol()
pthread_mutexattr_setpshared()
pthread_mutexattr_settype()
pthread_once()
pthread_rwlock_destroy()
pthread_rwlock_init()
pthread_rwlock_rdlock()
pthread_rwlock_tryrdlock()
pthread_rwlock_trywrlock()
pthread_rwlock_unlock()
pthread_rwlock_wrlock()
pthread_rwlockattr_destroy()
pthread_rwlockattr_getpshared()
pthread_rwlockattr_init()
pthread_rwlockattr_setpshared()
pthread_self()
pthread_setcancelstate()
pthread_setcanceltype()
pthread_setconcurrency()
pthread_setschedparam()
pthread_setspecific()
pthread_sigmask()
pthread_testcancel()

It's possibly not worth it too, thoughts?

I can't judge, I haven't really looked into what the code is doing and how useful it would be. Just noticed the compile problem and hte inconsistency between the thread and proc cases. Sorry.

Regards,

Rainer

Reply via email to