Skip to content

clear_messageClearMessageClearMessageclear_messageT_clear_message🔗

Short description🔗

clear_messageClearMessageClearMessageclear_messageT_clear_message — Close a message handle and release all associated resources.

Signature🔗

clear_message( message MessageHandle )void ClearMessage( const HTuple& MessageHandle )static void HOperatorSet.ClearMessage( HTuple messageHandle )def clear_message( message_handle: MaybeSequence[HHandle] ) -> None

Herror T_clear_message( const Htuple MessageHandle )

static void HMessage::ClearMessage( const HMessageArray& MessageHandle )

void HMessage::ClearMessage( ) const

static void HMessage.ClearMessage( HMessage[] messageHandle )

void HMessage.ClearMessage( )

Description🔗

clear_messageClearMessage closes a message handle MessageHandlemessageHandlemessage_handle that was previously opened with create_messageCreateMessage or dequeue_messageDequeueMessage. Any resources owned by the message, in particular the tuple or object data stored in the message, will be released.

Multiple message handles can be closed in a single clear_messageClearMessage call, passing them as a tuple to the MessageHandlemessageHandlemessage_handle parameter.

Attention🔗

The handle(s) must not be used again after being invalidated using clear_messageClearMessage. Using an invalid handle results in undefined behavior.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

This operator modifies the state of the following input parameter:

During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.

Parameters🔗

MessageHandlemessageHandlemessage_handle (input_control, state is modified) message(-array) → (handle)HTuple (HHandle)HMessage, HTuple (IntPtr)MaybeSequence[HHandle]Htuple (handle)

Message handle(s) to be closed.

Number of elements: MessageHandle >= 1
Restriction: MessageHandle != 0

Example🔗

(HDevelop)

MessageHandles := []
for idx := 0 to 4 by 1
  create_message (MessageHandle)
  MessageHandles[idx]:= MessageHandle
endfor
* ...

Result🔗

If the message handle(s) passed to the operator are valid, clear_messageClearMessage returns 2 (H_MSG_TRUE). Otherwise an exception is raised. If a tuple of handles is passed and some of them are invalid, clear_messageClearMessage attempts to clear as many handles from the tuple as possible before reporting the error.

Combinations with other operators🔗

Combinations

Possible predecessors

create_messageCreateMessage, dequeue_messageDequeueMessage

See also

create_messageCreateMessage, set_message_tupleSetMessageTuple, get_message_tupleGetMessageTuple, set_message_objSetMessageObj, get_message_objGetMessageObj, set_message_paramSetMessageParam, get_message_paramGetMessageParam, enqueue_messageEnqueueMessage, dequeue_messageDequeueMessage

Module🔗

Foundation