Commit 0f7de40e authored by Zhigang Gong's avatar Zhigang Gong

Fixed the race condition between inc and dec on the l_counter.

Signed-off-by: 's avatarZhigang Gong <zhigang.gong@intel.com>
parent b1a8e4f7
......@@ -431,10 +431,8 @@ __kernel void stage2_hysteresis(__global uchar *map_ptr, int map_step, int map_o
for (int i = 0; i < pix_per_thr; ++i)
{
int index = atomic_dec(&l_counter) - 1;
if (index < 0) {
atomic_inc(&l_counter);
if (index < 0)
continue;
}
ushort2 pos = l_stack[ index ];
#pragma unroll
......@@ -454,6 +452,9 @@ __kernel void stage2_hysteresis(__global uchar *map_ptr, int map_step, int map_o
}
}
barrier(CLK_LOCAL_MEM_FENCE);
if (l_counter < 0)
l_counter = 0;
barrier(CLK_LOCAL_MEM_FENCE);
while (p_counter > 0)
{
......@@ -496,4 +497,4 @@ __kernel void getEdges(__global const uchar *mapptr, int map_step, int map_offse
}
}
#endif
\ No newline at end of file
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment