clear_message_queueT_clear_message_queueClearMessageQueueClearMessageQueueclear_message_queue (算子)
名称
clear_message_queueT_clear_message_queueClearMessageQueueClearMessageQueueclear_message_queue — 关闭消息队列句柄并释放所有相关资源。
签名
def clear_message_queue(queue_handle: MaybeSequence[HHandle]) -> None
描述
clear_message_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueueclear_message_queue closes a message queue handle
QueueHandleQueueHandleQueueHandleQueueHandlequeueHandlequeue_handle that was previously opened with
create_message_queuecreate_message_queueCreateMessageQueueCreateMessageQueueCreateMessageQueuecreate_message_queue。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_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueueclear_message_queue call, passing them as a tuple to the
QueueHandleQueueHandleQueueHandleQueueHandlequeueHandlequeue_handle parameter.
注意
The handle(s) must not be used again after being invalidated using
clear_message_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueueclear_message_queue. Using an invalid handle results in
undefined behavior.
Operator clear_message_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueueclear_message_queue must not be called while the
handle is used concurrently from other threads, because this would result
in undefined behavior.
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子修改后续输入参数的状态:
在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。
参数
QueueHandleQueueHandleQueueHandleQueueHandlequeueHandlequeue_handle (输入控制,状态被修改) message_queue(-array) → HMessageQueue, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Message queue handle(s) to be closed.
元素数量:
QueueHandle >= 1
限制:
QueueHandle != 0
示例(HDevelop)
create_message_queue (ProducerQueue)
create_message_queue (ResultQueue)
* ...
结果
如果传递给算子的消息队列句柄有效,
clear_message_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueueclear_message_queue 返回 2 ( H_MSG_TRUE )。否则将抛出异常。
If a tuple of handles is passed and some of them are invalid,
clear_message_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueueclear_message_queue attempts to clear as many handles
from the tuple as possible before reporting the error.
可能的前趋
create_message_queuecreate_message_queueCreateMessageQueueCreateMessageQueueCreateMessageQueuecreate_message_queue,
set_message_queue_paramset_message_queue_paramSetMessageQueueParamSetMessageQueueParamSetMessageQueueParamset_message_queue_param
另见
create_message_queuecreate_message_queueCreateMessageQueueCreateMessageQueueCreateMessageQueuecreate_message_queue,
enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message,
dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessagedequeue_message,
set_message_queue_paramset_message_queue_paramSetMessageQueueParamSetMessageQueueParamSetMessageQueueParamset_message_queue_param,
get_message_queue_paramget_message_queue_paramGetMessageQueueParamGetMessageQueueParamGetMessageQueueParamget_message_queue_param,
create_messagecreate_messageCreateMessageCreateMessageCreateMessagecreate_message,
clear_messageclear_messageClearMessageClearMessageClearMessageclear_message,
set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTupleset_message_tuple,
get_message_tupleget_message_tupleGetMessageTupleGetMessageTupleGetMessageTupleget_message_tuple,
set_message_objset_message_objSetMessageObjSetMessageObjSetMessageObjset_message_obj,
get_message_objget_message_objGetMessageObjGetMessageObjGetMessageObjget_message_obj
模块
基础