Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement SDL-0187 Restructure iOS Threading and Queueing #1348

Merged
merged 39 commits into from Jul 23, 2019

Conversation

joeljfischer
Copy link
Contributor

@joeljfischer joeljfischer commented Jul 15, 2019

Fixes #1028

This PR is ready for review.

Risk

This PR makes no API changes.

Testing Plan

Unit tests updated and smoke tests added

Summary

This PR restructures the threading in the library to use an "execution context" structure.

Changelog

Enhancements
  • Restructure the threading in the library to use an "execution context" structure.

Tasks Remaining:

  • Restructure SDLFileManager tests

CLA

@joeljfischer joeljfischer added enhancement proposal Accepted SDL Evolution Proposal labels Jul 15, 2019
@joeljfischer joeljfischer added this to the 6.4.0 milestone Jul 15, 2019
@joeljfischer joeljfischer self-assigned this Jul 15, 2019
@joeljfischer joeljfischer added this to In progress in v6.4 via automation Jul 15, 2019
# Conflicts:
#	SmartDeviceLink/SDLLifecycleManager.m
Copy link
Contributor

@NicoleYarroch NicoleYarroch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some comments.

SmartDeviceLink/SDLDeleteFileOperation.h Show resolved Hide resolved
SmartDeviceLink/SDLListFilesOperation.h Show resolved Hide resolved
SmartDeviceLink/SDLAudioStreamManager.m Outdated Show resolved Hide resolved
v6.4 automation moved this from In progress to Review in progress Jul 19, 2019
@NicoleYarroch
Copy link
Contributor

SYNC 3 doesn't seem to be handling multiple Show requests very well. Core either timeout after 20 seconds or response with a GENERIC_ERROR or INVALID_DATA request.

@joeljfischer
Copy link
Contributor Author

After investigation, it seems that this is primarily a Ford issue with their HMI's handling of Show requests. Due to how the ScreenManager's internal TextAndGraphic and SoftButton managers are structured, and how the example apps work, there are multiple show requests happening immediately when certain soft buttons are pressed, and pressing them over and over very quickly leads to errors from Ford's head unit.

I was unable to determine that this happens at a more frequent rate than the previous 6.3.1 release, and testing this branch with a full-featured internal media app showed qualitative improvement in speed when connected to Ford's head unit.

Additional improvements will likely only be possible by batching together soft button and graphic Show updates. This isn't currently possible with the structure of the ScreenManager's internal managers, however, it may be possible once the TextAndGraphic sub-manager is restructured to use queues. This alone would be an improvement, and we could do further improvement by making the SoftButtonManager and TextAndGraphic queues combine updates when possible.

This would be quite a large bit of work, however, and is out of the scope of this proposal implementation, so I will leave that to future work.

v6.4 automation moved this from Review in progress to Reviewer approved Jul 23, 2019
@joeljfischer joeljfischer merged commit 5f0190a into develop Jul 23, 2019
v6.4 automation moved this from Reviewer approved to Done Jul 23, 2019
@joeljfischer joeljfischer deleted the feature/issue_1028_restructure_ios_threading branch July 23, 2019 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal Accepted SDL Evolution Proposal
Projects
No open projects
v6.4
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

2 participants