get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadId (Operator)
Name
get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadId
— Gibt eine ID für den derzeit ausgeführten Thread zurück.
Signatur
Herror get_current_hthread_id(Hlong* HThreadID)
Herror T_get_current_hthread_id(Htuple* HThreadID)
void GetCurrentHthreadId(HTuple* HThreadID)
static Hlong HSystem::GetCurrentHthreadId()
Beschreibung
get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadIdGetCurrentHthreadId
gibt eine ID in HThreadIDHThreadIDHThreadIDHThreadIDHThreadID
zurück, welche den derzeit ausgeführten Thread repräsentiert.
Diese ID ist identisch zu den jeweiligen Thread IDs der Betriebssysteme
(Windows Thread32, POSIX Threads unter UNIX Systemen) als auch zu der
Thread ID welche die par_start Operation der HDevEngine zurückgibt. Sie
kann verwendet werden, um mit interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperator
Operatoren
abzubrechen, die in diesem Thread laufen.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
HThreadIDHThreadIDHThreadIDHThreadIDHThreadID
(output_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
ID, welche den derzeitigen Thread repräsentiert.
Beispiel (HDevelop)
global tuple HThreadID
get_current_hthread_id (HThreadID)
* call some slow operator...
* In a different thread
wait_seconds(2)
* Interrupt the long-running operator in the other thread
interrupt_operator (HThreadID, 'break')
Ergebnis
Wenn der derzeitige Thread ermittelt werden kann, liefert
get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadIdGetCurrentHthreadId
2 (H_MSG_TRUE) zurück.
Andernfalls wird eine Fehlerbehandlung durchgeführt.
Nachfolger
interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperator
Siehe auch
interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperator
,
set_operator_timeoutset_operator_timeoutSetOperatorTimeoutSetOperatorTimeoutSetOperatorTimeout
Modul
Foundation