Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • G GLib
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 861
    • Issues 861
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 57
    • Merge requests 57
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • GLib
  • Merge requests
  • !2823

gsignal: Perform signal unlocked handlers block, unblock and disconnect ops

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Marco Trevisan requested to merge 3v1n0/glib:gsignal-threading-cleanup into main Jul 15, 2022
  • Overview 1
  • Commits 2
  • Pipelines 1
  • Changes 1

We used to perform unneeded lock/unlock dances to perform block, unblock and disconnect actions, and these were potentially unsafe because we might have looped in data that could be potentially be changed by other threads.

We could have also done the same by saving the handlers ids in a temporary array and eventually remove them, but I don't see a reason for that since we can just keep all locked without the risk of creating deadlocks.

Coverity CID: #1474757, #1474771, #1474429

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: gsignal-threading-cleanup