google / google/EarlGrey

Convert all idlingResource to event-based

Open
#275 5 comments 3 reactions 0 assignees View on GitHub
type: enhancement
Dominant language
Objective-C
Stars
5.7k
Forks
737
Avg merge
1d 20h
Merged PRs (30d)
5

Description

isIdleNow method is polled by the thread executor. Instead use event-based model in which the thread executor calls CFRunLoopRun and waits for the idling resources to idle. Once all the idling resources are idle, the last one to idle issues a CFRunLoopStop, returning control back to the thread executor.

Contributor guide

Open the contributing guide

Research direction

Start by locating the idlingResource implementation, its isIdleNow polling path, and the thread executor. Then trace how CFRunLoopRun and CFRunLoopStop would interact with all idling resources. Done means the executor waits on the run loop and the last resource to become idle returns control without polling.

Written by the indexing model from the issue text.

Assessment

Tech stack
objective-c
Domain
mobile-dev, testing-qa
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.