diff --git a/ConflictSet.cpp b/ConflictSet.cpp index 3274b88..1b77010 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -4700,7 +4700,6 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { interleaved_insert::Result stackResults[100]; -#if __has_attribute(preserve_none) && __has_attribute(musttail) constexpr int kConcurrent = 16; interleaved_insert::Job inProgress[kConcurrent]; interleaved_insert::Context context; @@ -4732,8 +4731,6 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { // are done inProgress->continuation(inProgress, &context); -#endif - // Phase 2: Perform insertions. Nodes may be upsized during this phase, but // old nodes get forwarding pointers installed and are released after // phase 2. @@ -4794,6 +4791,7 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { } } +#if __has_attribute(preserve_none) && __has_attribute(musttail) bool allPointWrites = true; for (int i = 0; i < count; ++i) { if (writes[i].end.len > 0) { @@ -4801,7 +4799,10 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { break; } } - if (allPointWrites) { +#else + bool allPointWrites = false; +#endif + if (allPointWrites && count > 1) { interleavedPointWrites(writes, count, InternalVersionT(writeVersion)); } else { for (int i = 0; i < count; ++i) {