Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

pthread_keycreate(3-thr)                           pthread_keycreate(3-thr)

NAME
     pthreadkeycreate - Einen eindeutigen thread-spezifischen Datenschlüs-
     selwert generieren

SYNTAX
     #include <pthread.h>

     int pthreadkeycreate(
          pthreadkeyt *key,
          void (*destructor) (void *value));

PARAMETER
     key         Wert des neuen thread-spezifischen Datenschlüssels.

     destructor  Eine Prozedur, die aufgerufen wird, um einen zum erstell-
                 ten Schlüssel gehörenden Datenwert zu entfernen, wenn der
                 Thread beendet wird.

BESCHREIBUNG
     Die Routine pthreadkeycreate() generiert einen eindeutigen, thread-
     spezifischen Datenschlüsselwert. Dieser Schlüsselwert gibt einen
     thread-spezifischen Datenwert an, wobei es sich um eine Speicher-
     adresse handelt, die von dem Client generiert wird, der die Daten
     beliebiger Größe enthält.

     Über thread-spezifische Daten kann die Client-Software Informationen
     dem aktuellen Thread zuordnen.

     So können beispielsweise thread-spezifische Daten von der Runtime-
     Bibliothek einer Programmiersprache verwendet werden, die eine sprach-
     spezifische, thread-eigene Datenstruktur einem einzelnen Thread zuord-
     nen muß. Die Routinen zu thread-spezifischen Daten bieten ferner eine
     portierbare Möglichkeit zur Implementierung der Speicherklasse (des
     sogenannten thread-private static - thread-eigener statischer Spei-
     cher), die zur Unterstützung der parallelen Dekomposition in der Pro-
     grammiersprache FORTRAN erforderlich ist.

     Diese Routine generiert einen neuen Schlüsselwert und gibt ihn zurück.
     Bei jedem Aufruf dieser Routine innerhalb eines Prozesses wird ein
     Schlüsselwert zurückgegeben, der innerhalb eines Anwendungsaufrufs
     eindeutig ist. Aufrufe von pthreadkeycreate() müssen im Initialisie-
     rungscode enthalten sein, der garantiert nur einmal in jedem Prozeß
     ausgeführt wird. Die Routine pthreadonce() stellt eine Möglichkeit
     zur Angabe eines solchen Codes zur Vefügung.

     Wenn mehrere Funktionen gemeinsamen Zugriff auf thread-spezifische
     Daten haben, müssen sich diese Funktionen auf den Schlüsselwert eini-
     gen, der dem Kontext zugeordnet wird. Der Schlüsselwert darf nur ein-
     mal generiert werden und muß in einer Position gespeichert sein, die
     allen Funktionen bekannt ist. (Möglicherweise bietet es sich an, die
     Erstellung eines Schlüssels sowie das Festlegen und Abrufen der Kon-
     textwerte für diesen Schlüssel in einer speziell für diesen Zweck



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

pthread_keycreate(3-thr)                           pthread_keycreate(3-thr)

     erstellten Funktion einzubetten.)

     Wenn ein Thread beendet wird, werden die thread-spezifischen Daten
     automatisch gelöscht. Für alle dem Thread zugeordneten thread-spezifi-
     schen Daten wird die Routine destructor aufgerufen, die dem Schlüssel-
     wert für diesen Kontext zugeordnet ist. Die Reihenfolge, in der die
     Kontext-Destruktoren für jeden einzelnen Thread bei der Beendigung des
     Thread aufgerufen werden, ist nicht definiert.

RÜCKGABEWERTE
     Wenn die Funktion fehlschlägt, kann errno auf einen der folgenden
     Werte gesetzt werden:

     EINVAL    Der durch key angegebene Wert ist ungültig.

     EAGAIN    Es wurde versucht, einen Schlüssel zuzuordnen, jedoch ist
               der Bereich für den Schlüsselnamen bereits belegt. Dies ist
               keine temporäre Bedingung.

     ENOMEM    Der verfügbare Speicher reicht zur Erstellung des Schlüssels
               nicht aus.

SIEHE AUCH
     pthreadgetspecific(3-thr), pthreadsetspecific(3-thr).






























Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026