get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadId (Operator)

Name

get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadId — Return the HALCON thread ID of the current thread.

Signature

get_current_hthread_id( : : : HThreadID)

Herror get_current_hthread_id(Hlong* HThreadID)

Herror T_get_current_hthread_id(Htuple* HThreadID)

void GetCurrentHthreadId(HTuple* HThreadID)

static Hlong HSystem::GetCurrentHthreadId()

static void HOperatorSet.GetCurrentHthreadId(out HTuple HThreadID)

static int HSystem.GetCurrentHthreadId()

Description

get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadIdGetCurrentHthreadId returns a thread ID that represents the currently running thread in HThreadIDHThreadIDHThreadIDHThreadIDHThreadID. This ID is identical to the windows thread ID or the POSIX thread ID on UNIX platforms and is also returned by the par_start operation of the hdevengine. It can later be used to interrupt operators that are executed in this thread using interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperator.

Execution Information

Parameters

HThreadIDHThreadIDHThreadIDHThreadIDHThreadID (output_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

ID representing the current thread.

Example (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')

Result

If the current thread can be determined, get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadIdGetCurrentHthreadId returns 2 (H_MSG_TRUE). Otherwise an exception is raised.

Possible Successors

interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperator

See also

interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperator, set_operator_timeoutset_operator_timeoutSetOperatorTimeoutSetOperatorTimeoutSetOperatorTimeout

Module

Foundation