Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • gst-plugins-rs gst-plugins-rs
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 69
    • Issues 69
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 21
    • Merge requests 21
  • 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
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GStreamer
  • gst-plugins-rsgst-plugins-rs
  • Issues
  • #169

Closed
Open
Created Sep 28, 2021 by Mathieu Duponchelle@meh🐸Maintainer

threadshare: busy wait in elements that schedule timers closer in the future than `context_wait` / 2

@fengalin I wonder what your take on this is:

In the threadshare jitterbuffer for instance, the element determines when it needs to wake up to push the next item, goes to sleep then checks if the next element is indeed ready.

The problem is that when it wakes up too early, it determines that "now" is still too early for the next item, and goes back to sleep for a duration < context_wait / 2 (using delay_for), wakes up immediately, rinse repeat until time for the next item has actually been reached.

I'm not sure what the best fix for this is: should our tokio fork always delegate timers to the "next" time frame, accepting that timers could be up to context_wait "late", or should jitterbuffer always pop the next item when it woke up without getting unscheduled (which can happen when a new item was queued while sleeping)?

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking