This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM62A7:可以从与 vxMapImagePatch 不同的线程调用 vxUnmapImagePatch

Guru**** 1810440 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1432310/am62a7-can-vxunmapimagepatch-be-called-from-a-different-thread-than-vxmapimagepatch

器件型号:AM62A7

工具与软件:

您好!

我有一些代码调用 vxMapImagePatch (在从 tiovx grpah 接收的 buf 上)、将数据指针传递给 不同线程中的多个使用方、然后最终调用 vxUnmapImagePatch (在与调用 Map 的线程不同的线程中)。

 在不同的线程中调用 vxUnmapImagePatch 是否合法?  
 每个需要 读取数据的线程是否应该调用 vxMapImagePatch/Unmap?
所有数据使用者都是严格只读的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     在不同的线程中调用 vxUnmapImagePatch 是否合法?  [报价]

    可以、  从另一个线程调用 vxUnmapImagePatch 是安全的。

    需要 读取数据的每个线程是否应调用 vxMapImagePatch/Unmap?

    这是一个好问题。 对于一个 MapImage 调用、应该有相应的 unmap 调用、无论该调用是否在同一线程中。

    在您的情况下、您有多个消费者、因此我认为您在这里的使用有一些选择。 在您的多个消费者中、一旦所有其他线程都将使用该补丁引用的数据(可能需要分析和/或信号)、您就可以指定其中一个线程来处理取消映射。 另一种方法是为每个用户复制该补丁并让它们在完成后立即取消映射、但这可能会导致内存资源的使用效率低下。  

    否则、TIOVX 和映像修补处理不会在内部跟踪数据使用者、因此需要在应用级别进行一些信令来确定何时可以安全地取消映射该数据。  

    BR、
    -Reese

    [/quote]