Skip to content

Commit 178c5b6

Browse files
badrishcCopilot
andcommitted
Wrap all enqueue methods in try/finally for exception safety
Move BeginInflightEnqueue() right after epoch.Resume() and wrap the enqueue body in try/finally so that EndInflightEnqueue() + epoch.Suspend() always execute, even if payload serialization, SetHeader, or commitNum checks throw. Without this, an exception between Begin and End would leave the inflight slot pinned at a low address, permanently preventing SafeTailAddress from advancing past that point and stalling all uncommitted scan iterators. 15 methods fixed: 9 TryEnqueue variants (moved Begin up, wrapped in try/ finally) and 6 void Enqueue variants using AllocateBlock (wrapped post- AllocateBlock payload writes in try, moved End+Suspend to finally). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent c4855e4 commit 178c5b6

1 file changed

Lines changed: 259 additions & 196 deletions

File tree

0 commit comments

Comments
 (0)