-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
New threading model #4654
Comments
This might be the easiest path, but it isn't necessarily the only one. We can keep them on separate threads as long as we have them lock when reading or writing state. That being said, unless we need to work around platform issues (ie #2 on the checklist), merging them to one thread might be the way to go. I'll also add another checklist item for removing all the now-unneeded locks/sync stuff throughout the codebase |
Yes, there could be locking based solutions - but part of this is trying to find the simplest solution, so reverting the thread split seems like a good start. |
Work is begun on this - I updated the TODO above to highlight what is needed in the order. |
The no copy idea might be easily solved with this Go proposal once accepted: golang/go#70811 |
Checklist
Is your feature request related to a problem?
To work on race conditions and many locking challenges we agreed to revise the threading model (the "App thread").
This issue tracks the work required.
Is it possible to construct a solution with the existing API?
No response
Describe the solution you'd like to see.
First:
Then:
Also to consider:
noCopy
struct that is a dummy implementation ofsync.Locker
to BaseWidget sogo vet
can still complain about passing widgets by valueThe text was updated successfully, but these errors were encountered: