Skip to content

Commit

Permalink
Hanging problem with 144 threads on grosminet:
Browse files Browse the repository at this point in the history
testing strict memory ordering and atomicity for mark_cell_as_conflict()
(normally should not be the problem since cell is already acquired by
thread when calling this function, but this is the only thing I see
for now...)
  • Loading branch information
BrunoLevy committed Nov 7, 2024
1 parent 0ed6b85 commit 01c7548
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/lib/geogram/delaunay/delaunay_sync.h
Original file line number Diff line number Diff line change
Expand Up @@ -194,11 +194,20 @@ namespace GEO {
// do not need since this function is always used by
// a thread that previously acquired the cell (well in
// practice it gives approximately the same performance).

/*
cell_status_[cell].store(
cell_status_[cell].load(
std::memory_order_relaxed
) | CONFLICT_MASK, std::memory_order_relaxed
);
*/

// Testing with fetch_or (on grosminet we get stuck with
// 144 threads and I do not know why...)
cell_status_[cell].fetch_or(
CONFLICT_MASK // , std::memory_order_relaxed
);
}

/**
Expand Down

0 comments on commit 01c7548

Please sign in to comment.