Man page of tis
Section: C Library Functions (3)
Return to Main Contents
tis, tis_intro - Introduction to Thread-Independent Services (tis)
Thread-independent services (tis) routines comprise a
DIGITAL-proprietary interface to the DECthreads multitasking library. The
tis interface provides services that assist with the development of
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
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
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
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:
Thread cancelation routines
Thread-specific data key routines
Condition variable routines
Read-write lock routines
Calls a one-time initialization routine that can be executed.
Obtains the identifier of the calling thread.
Thread Cancelation Routines
Changes the calling thread's cancelability state.
Creates a cancelation point in the calling thread.
Thread-Specific Data Key Routines
Obtains the data associated with the specified thread-specific data key.
Generates a unique thread-specific data key.
Deletes a thread-specific data key.
Sets the value associated with the specified thread-specific key.
Locks the DECthreads global mutex.
Destroys the specified tis mutex object.
Initializes a tis mutex object.
Locks the specified tis mutex if not already locked.
Tries to lock the specified tis mutex.
Unlocks the specified tis mutex.
Unlocks the DECthreads global mutex.
Condition Variable Routines
Wakes all threads waiting on the specified condition variable.
Destroys the specified condition variable object.
Initializes a condition variable object.
Wakes at least one thread that is waiting on the specified condition variable.
Causes the calling thread to wait for the specified condition variable to
be signaled or broadcasted.
Read-Write Lock Routines
Acquires the specified read-write lock for read access.
Attempts to acquire the specified read-write lock for read access; returns immediately
if already locked.
Unlocks the specified read-write lock already acquired for read access.
Destroys the specified read-write lock object.
Initializes a read-write lock object.
Acquires the specified read-write lock for write access.
Attempts to acquire the specified read-write lock for write access; returns
immediately if already locked.
Unlocks the specified read-write lock already acquired for write access.
- General Routines
- Thread Cancelation Routines
- Thread-Specific Data Key Routines
- Mutex Routines
- Condition Variable Routines
- Read-Write Lock Routines
This document was created by
using the manual pages.
Time: 02:40:47 GMT, October 02, 2010