Skip to content

Commit d445787

Browse files
committed
a slight shortcut when no event is being requested
1 parent 3bd5026 commit d445787

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

Sources/ReactiveStreams/stream-post.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,14 @@ open class PostBox<Value>: EventStream<Value>
101101
}
102102
#endif
103103

104+
let requested = self.requested
105+
if requested <= 0 && CAtomicsLoad(last, .relaxed) == nil { return }
106+
104107
// try to dequeue the next event
105108
let head = Node(storage: CAtomicsLoad(self.head, .acquire))
106109
let next = CAtomicsLoad(head.next, .acquire)
107110

108-
if requested <= 0 && next != CAtomicsLoad(last, .relaxed) { return }
111+
if requested <= 0 && CAtomicsLoad(last, .relaxed) != next { return }
109112

110113
if let next = next
111114
{

0 commit comments

Comments
 (0)