Skip to content

clear_message_queueClearMessageQueueClearMessageQueueclear_message_queueT_clear_message_queue🔗

Short description🔗

clear_message_queueClearMessageQueueClearMessageQueueclear_message_queueT_clear_message_queue — Close a message queue handle and release all associated resources.

Signature🔗

clear_message_queue( message_queue QueueHandle )void ClearMessageQueue( const HTuple& QueueHandle )static void HOperatorSet.ClearMessageQueue( HTuple queueHandle )def clear_message_queue( queue_handle: MaybeSequence[HHandle] ) -> None

Herror T_clear_message_queue( const Htuple QueueHandle )

static void HMessageQueue::ClearMessageQueue( const HMessageQueueArray& QueueHandle )

void HMessageQueue::ClearMessageQueue( ) const

static void HMessageQueue.ClearMessageQueue( HMessageQueue[] queueHandle )

void HMessageQueue.ClearMessageQueue( )

Description🔗

clear_message_queueClearMessageQueue closes a message queue handle QueueHandlequeueHandlequeue_handle that was previously opened with create_message_queueCreateMessageQueue. Any resources owned by the message queue, in particular message data queued in the message queue will be released.

Multiple message queue handles can be closed in a single clear_message_queueClearMessageQueue call, passing them as a tuple to the QueueHandlequeueHandlequeue_handle parameter.

Attention🔗

The handle(s) must not be used again after being invalidated using clear_message_queueClearMessageQueue. Using an invalid handle results in undefined behavior. Operator clear_message_queueClearMessageQueue must not be called while the handle is used concurrently from other threads, because this would result 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🔗

QueueHandlequeueHandlequeue_handle (input_control, state is modified) message_queue(-array) → (handle)HTuple (HHandle)HMessageQueue, HTuple (IntPtr)MaybeSequence[HHandle]Htuple (handle)

Message queue handle(s) to be closed.

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

Example🔗

(HDevelop)

create_message_queue (ProducerQueue)
create_message_queue (ResultQueue)
* ...

Result🔗

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

Combinations with other operators🔗

Combinations

Possible predecessors

create_message_queueCreateMessageQueue, set_message_queue_paramSetMessageQueueParam

See also

create_message_queueCreateMessageQueue, enqueue_messageEnqueueMessage, dequeue_messageDequeueMessage, set_message_queue_paramSetMessageQueueParam, get_message_queue_paramGetMessageQueueParam, create_messageCreateMessage, clear_messageClearMessage, set_message_tupleSetMessageTuple, get_message_tupleGetMessageTuple, set_message_objSetMessageObj, get_message_objGetMessageObj

Module🔗

Foundation