Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
M
mutter
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 786
    • Issues 786
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 104
    • Merge Requests 104
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOME
  • mutter
  • Merge Requests
  • !216

Merged
Created Sep 03, 2018 by Daniel van Vugt@vanvugtContributor

cogl-winsys-glx: Fix frame notification race/leak [performance]

  • Overview 13
  • Commits 1
  • Pipelines 19
  • Changes 1

If a second set_{sync,complete}_pending was queued before the idle handler had flushed the first then one of them would be forgotten. It would stay queued forever and never emitted as a notification.

This could happen repeatedly causing a slow leak. But worse still, clutter-stage-cogl would then have pending_swaps permanently stuck above zero preventing the presentation timing logic from being used.

The problem is that a boolean can only count to one, but in some cases (triple buffering, whether intentional or accidental #334 (closed)) we need it to count to two. So just change booleans to integers and count properly.

Edited Apr 12, 2019 by Daniel van Vugt
Assignee
Assign to
Reviewer
Request review from
GNOME 3.32
Milestone
GNOME 3.32 (Past due)
Assign milestone
Time tracking
Source branch: fix-pending-swaps