Don't tightloop if currentPos is 0
MODIFY
src/github.com/matrix-org/dendrite/syncserver/sync/requestpool.go
src/github.com/matrix-org/dendrite/syncserver/sync/requestpool.go
@@ -119,6 +119,8 @@ func (rp *RequestPool) waitForEvents(req syncRequest) types.StreamPosition {
}
func (rp *RequestPool) currentSyncForUser(req syncRequest) (*types.Response, error) {
+ currentPos := rp.waitForEvents(req)
+
if req.since == types.StreamPosition(0) {
pos, data, err := rp.db.CompleteSync(req.userID, req.limit)
if err != nil {
@@ -135,8 +137,6 @@ func (rp *RequestPool) currentSyncForUser(req syncRequest) (*types.Response, err
return res, nil
}
- currentPos := rp.waitForEvents(req)
-
// TODO: handle ignored users
data, err := rp.db.IncrementalSync(req.userID, req.since, currentPos, req.limit)

Don't tightloop if currentPos is 0