Jump to content
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
HP.com home

Transition Impacts

Tru64 UNIX Software Transition Kit


» HP STK home
» Home
» Overview
» Tools
» Documentation
» Transition impacts
» Identifier types
» Impact list
» Porting to HP-UX
» Glossary
» Help
» Send us feedback
Site maps
» Tru64 UNIX STK
Content starts here

critical impact:

Thread-Independent Services (tis) - not supported; temporarily available (CrUn42)

ME Impacts TH Impacts

Problem description

The Thread-independent services (tis) routines are specific to Tru64 UNIX, and are not supported on HP-UX.

The tis routines compose a Compaq proprietary interface to the DECthreads multitasking library. Although these routines are not supported on HP-UX, they will be temporarily provided on HP-UX through the installation of the Tru64 UNIX Migration Environment for HP-UX.

The Migration Environment contains Tru64 UNIX APIs, development tools, and commands and utilities to assist customers in migrating their applications from Tru64 UNIX to HP-UX.


C/C++ Functionstis_cond_broadcast C/C++ Functionstis_mutex_trylock
C/C++ Functionstis_cond_destroy C/C++ Functionstis_mutex_unlock
C/C++ Functionstis_cond_init C/C++ Functionstis_once
C/C++ Functionstis_cond_signal C/C++ Functionstis_read_lock
C/C++ Functionstis_cond_timedwait C/C++ Functionstis_read_trylock
C/C++ Functionstis_cond_wait C/C++ Functionstis_read_unlock
C/C++ Functionstis_get_expiration C/C++ Functionstis_rwlock_destroy
C/C++ Functionstis_getspecific C/C++ Functionstis_rwlock_init
C/C++ Functionstis_key_create C/C++ Functionstis_self
C/C++ Functionstis_key_create_new C/C++ Functionstis_setcancelstate
C/C++ Functionstis_key_delete C/C++ Functionstis_setspecific
C/C++ Functionstis_lock_global C/C++ Functionstis_testcancel
C/C++ Functionstis_mutex_destroy C/C++ Functionstis_unlock_global
C/C++ Functionstis_mutex_init C/C++ Functionstis_write_lock
C/C++ Functionstis_mutex_initwithname C/C++ Functionstis_write_trylock
C/C++ Functionstis_mutex_lock C/C++ Functionstis_write_unlock

See also

Solution description

The tis routines will be temporarily provided on HP-UX through the Tru64 UNIX Migration Environment for HP-UX, not as part of the base HP-UX operating system. For a long-term solution, we recommend that you change your code.

Change each tis routine to its corresponding pthread routine on HP-UX, and include the following line in your code:

#include <pthread.h>

The following table shows Tru64 UNIX tis routines and their corresponding HP-UX pthread routines:

tis Routine                     pthread Routine
-----------                     ---------------
tis_write_unlock                pthread_rwlock_unlock 
tis_write_trylock               pthread_rwlock_trywrlock
tis_write_lock                  pthread_rwlock_wrlock 
tis_testcancel                  pthread_testcancel 
tis_setspecific                 pthread_setspecific
tis_setcancelstate              pthread_setcancelstate
tis_self                        pthread_self 
tis_rwlock_destroy              pthread_rwlock_destroy
tis_read_unlock                 pthread_rwlock_unlock
tis_read_trylock                pthread_rwlock_tryrlock
tis_read_lock                   pthread_rwlock_rdlock
tis_once                        pthread_once
tis_mutex_unlock                pthread_mutex_unlock 
tis_mutex_trylock               pthread_mutex_trylock 
tis_mutex_lock                  pthread_mutex_lock
tis_mutex_destroy               pthread_mutex_destroy
tis_key_delete                  pthread_key_delete 
tis_getspecific                 pthread_getspecific 
tis_cond_wait                   pthread_cond_wait 
tis_cond_timedwait              pthread_cond_timedwait
tis_cond_signal                 pthread_cond_signal 
tis_cond_destroy                pthread_cond_destroy
tis_cond_broadcast              pthread_cond_broadcast
tis_key_create                  pthread_key_create 
tis_mutex_init	                pthread_mutex_init
tis_mutex_initwithname	        pthread_mutex_init
tis_key_create_new	        pthread_key_create
tis_cond_init	                pthread_cond_init
tis_rwlock_init	                pthread_rwlock_init
tis_get_expiration              None

You can also replace the tis_get_expiration routine by with the proper portable POSIX code, by calling clock_gettime() and computing the proper struct timespec timeout.

Any code that depends on the global lock routines (tis_lock_global and tis_unlock_global) is extremely inefficient. Redesign your code by developing real locking strategies that do not bottleneck the entire application.

See also

Problem summary

classifications source types OS release severity type
ME, TH C, C++ any HP-UX 11i version critical unavailable
Printable version
Privacy statement Using this site means you accept its terms Feedback to DSPP
© 2007 Hewlett-Packard Development Company, L.P.