 |
Index for Section 3 |
|
 |
Alphabetical listing for T |
|
 |
Bottom of page |
|
tis(3)
NAME
tis, tis_intro - Introduction to Thread-Independent Services (tis)
DESCRIPTION
Thread-independent services (tis) routines compose an HP-proprietary
interface to the DECthreads multitasking library. The tis interface
provides services that assist with the development of thread-safe
libraries.
Thread synchronization can involve significant run-time cost, which is
undesirable in a nonthreaded environment. In the nonthreaded environment,
the tis interface enables you to build thread-safe libraries that are
efficient, yet provide the necessary synchronization when called from a
threaded environment.
When threads are not active within the process, tis routines execute only
the minimum steps necessary: code running in a nonthreaded environment is
not burdened by the run-time synchronization that is necessary when the
same code is run in a threaded environment. When threads are active, tis
routines provide the necessary thread-safe synchronization.
The tis objects created using this interface are fully interchangeable with
DECthreads Pthreads (POSIX 1003.1c) objects. So, a mutex can be created by
using static initialization (or using tis_mutex_init(3)) and can be locked,
the DECthreads core library (libpthread.so) subsequently activated, and the
mutex unlocked. Keys created by tis_key_create(3) are valid when a
threaded run-time environment is loaded.
Note that errno is NOT used by the tis routines. To indicate errors, the
tis routines return integer values indicating the type of error.
In a nonthreaded environment, condition variables should not be used to
guard operations (for example, with tis_cond_wait(3)). In a threaded
environment, the guidelines for using the DECthreads Pthread routines also
pertain to the use of the corresponding tis routine.
The tis routines can be classified into the following associated groups:
· General routines
· Thread cancellation routines
· Thread-specific data key routines
· Mutex routines
· Condition variable routines
· Read-write lock routines
General Routines
tis_get_expiration
Obtains a value representing a desired expiration time.
tis_once
Calls a one-time initialization routine that can be executed.
tis_self
Obtains the identifier of the calling thread.
Thread Cancellation Routines
tis_setcancelstate
Changes the calling thread's cancelability state.
tis_testcancel
Creates a cancellation point in the calling thread.
Thread-Specific Data Key Routines
tis_getspecific
Obtains the data associated with the specified thread-specific data
key.
tis_key_create
Generates a unique thread-specific data key.
tis_key_delete
Deletes a thread-specific data key.
tis_setspecific
Sets the value associated with the specified thread-specific key.
Mutex Routines
tis_lock_global
Locks the DECthreads global mutex.
tis_mutex_destroy
Destroys the specified tis mutex object.
tis_mutex_init
Initializes a tis mutex object.
tis_mutex_lock
Locks the specified tis mutex if not already locked.
tis_mutex_trylock
Tries to lock the specified tis mutex.
tis_mutex_unlock
Unlocks the specified tis mutex.
tis_unlock_global
Unlocks the DECthreads global mutex.
Condition Variable Routines
tis_cond_broadcast
Wakes all threads waiting on the specified condition variable.
tis_cond_destroy
Destroys the specified condition variable object.
tis_cond_init
Initializes a condition variable object.
tis_cond_signal
Wakes at least one thread that is waiting on the specified condition
variable.
tis_cond_timedwait
Causes the calling thread to wait for the specified condition variable
to be signaled or broadcast, such that it will awake after a specified
period of time.
tis_cond_wait
Causes the calling thread to wait for the specified condition variable
to be signaled or broadcast.
Read-Write Lock Routines
tis_read_lock
Acquires the specified read-write lock for read access.
tis_read_trylock
Attempts to acquire the specified read-write lock for read access;
returns immediately if already locked.
tis_read_unlock
Unlocks the specified read-write lock already acquired for read access.
tis_rwlock_destroy
Destroys the specified read-write lock object.
tis_rwlock_init
Initializes a read-write lock object.
tis_write_lock
Acquires the specified read-write lock for write access.
tis_write_trylock
Attempts to acquire the specified read-write lock for write access;
returns immediately if already locked.
tis_write_unlock
Unlocks the specified read-write lock already acquired for write
access.
 |
Index for Section 3 |
|
 |
Alphabetical listing for T |
|
 |
Top of page |
|