on master help sign in
Fix STM type mismatch in pollOnce by using let-in chains instead of do-yield
5d79340iko
server.knot+3−3
@@ -830,15 +830,15 @@ pollOnce = \token cursor -> do
830 yield m
830 yield m
831 let limitedMsgs = boundedSmallest matchingMsgs maxPollEvents (\m -> m.receivedAt)
831 let limitedMsgs = boundedSmallest matchingMsgs maxPollEvents (\m -> m.receivedAt)
832 if count limitedMsgs == 0 then retry
832 if count limitedMsgs == 0 then retry
833− else do
833+ else
834 let evts = do
834 let evts = do
835 m <- limitedMsgs
835 m <- limitedMsgs
836 yield {id: m.messageId, eventType: "message",
836 yield {id: m.messageId, eventType: "message",
837 payload: {toKey: m.toKey, fromKey: m.fromKey,
837 payload: {toKey: m.toKey, fromKey: m.fromKey,
838 encryptedBlob: m.encryptedBlob,
838 encryptedBlob: m.encryptedBlob,
839 timestamp: m.timestamp}}
839 timestamp: m.timestamp}}
840− let lastReceivedAt = fold (\acc m -> max acc m.receivedAt) clampedCursor limitedMsgs
840+ in let lastReceivedAt = fold (\acc m -> max acc m.receivedAt) clampedCursor limitedMsgs
841− yield (PollOk {events: evts, cursor: lastReceivedAt})
841+ in yield (PollOk {events: evts, cursor: lastReceivedAt})
842
842
843-- ============================================
843-- ============================================
844-- Request Handler
844-- Request Handler