Content-type: text/html Man page of tis

tis

Section: C Library Functions (3)
Index Return to Main Contents
 

NAME

tis, tis_intro - Introduction to Thread-Independent Services (tis)  

DESCRIPTION

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-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 cancelation routines Thread-specific data key routines Mutex routines Condition variable routines Read-write lock routines

 

General 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.

 

Mutex Routines

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. delim off

delim off


 

Index

NAME
DESCRIPTION
General Routines
Thread Cancelation Routines
Thread-Specific Data Key Routines
Mutex Routines
Condition Variable Routines
Read-Write Lock Routines

This document was created by man2html, using the manual pages.
Time: 02:40:47 GMT, October 02, 2010