gpt4 book ai didi

c - 事件队列清理

转载 作者:行者123 更新时间:2023-11-30 14:35:28 24 4
gpt4 key购买 nike

在我的 Tcl 扩展中,辅助线程正在用事件填充 Tcl 事件队列;事件包含指向具有动态生命周期的结构的指针。

确保事件队列中不存在带有指向已解除分配结构的悬空指针的事件的正确策略是什么?我可以阻止辅助线程创建新事件;目前我调用Tcl_DoOneEvent(TCL_DONTWAIT)在确保不能创建新事件之后和取消分配结构之前,循环直到返回 0(即事件队列为空)。

这是正确的做法吗?

相关说明,我不确定 Tcl_ThreadAlert() 的目的:如果每次调用 Tcl_ThreadQueueEvent() 后都需要这样做,为什么警报不包含在 Tcl_ThreadQueueEvent() 中?

最后,我的代码没有调用 Tcl_CreateEventSource() ,因为它似乎不需要设置也不需要检查过程,因为涉及第二个线程。这值得担心吗?

最佳答案

关于第一点,我觉得没问题。这非常类似于在 TCL 级别运行更新

我不确定第二点,因为它不是我已经探索过很多的 API 的一部分。可能是这样允许每个通知安排多个事件,或者因为调用还有其他用途,但我真的不知道。

关于第三点,听起来不错。我认为您永远不需要特殊的事件源来进行线程间消息传递。

关于c - 事件队列清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58519265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com