0

我一直认为渲染脚本在分配中使用 forEach 是线程安全的。为了帮助我进行调试,有人可以确认吗?

(我看到静态数组值检查成功,但使用 rsDebug 显示检查应该失败。

static uint32_t state[16];
static void f(); // modifies state.

/* snip... */

void
root(const uint32_t *in, uint32_t *out)
{
  /* snip... */

  f(); 

  if(state[0] == 0)
  {
      rsDebug("state[0]", state[0]);
      *out = 1;
  }
}

我看到 print state[0] 的值不是零!)

4

1 回答 1

0

每个单元都应独立于其他单元执行。如果您正在写入输入(或输出)分配的其他单元格,您当然可以触发未定义的行为。然而,这与任何其他多线程计算模型没有什么不同。你能准确地展示你的内核代码并描述你是如何调用它的吗?

于 2013-09-03T06:05:31.010 回答