Better support a lack of musttail and preserve_none

This commit is contained in:
2024-10-28 22:40:52 -07:00
parent c0bb175b7e
commit f27ca6d6af
+5 -4
View File
@@ -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) {