Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • S spice-gtk
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 63
    • Issues 63
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 8
    • Merge requests 8
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & 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
  • spice
  • spice-gtk
  • Issues
  • #4

Closed
Open
Created Jun 03, 2018 by Fabiano Fidêncio@fidencioDeveloper

Coroutines may be messing up with GTask's return

Submitted by Fabiano Fidêncio @fidencio

Assigned to Spice Bug List

Link to original bug (#94662)

Description

I've seen some weird behaviors of the GTask returning immediately when it was supposed to return in idle, in spice-gtk code.

What I got from a brief talk with Dan Winship is that "a GTask will return immediately only if: (a) it is in a thread which is running the GMainContext that the task was started in, and (b) that GMainContext has run at least one iteration since the thread started (...) So if you have tasks that are returning immediately when they shouldn't be, figure out how it is that those conditions are coming to be true when you don't expect them to be)".

And that "If you are doing things like messing with the stack or calling setcontext(), then it's possible that could mess things up. I don't know."

Let's investigate how to fix the coroutines on our side and, later on, open a bug on GLib as well if that's the case.

Assignee
Assign to
Time tracking