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

Nuke multithreading #352

Merged
merged 6 commits into from
Aug 12, 2024
Merged

Nuke multithreading #352

merged 6 commits into from
Aug 12, 2024

Conversation

LGFae
Copy link
Owner

@LGFae LGFae commented Aug 9, 2024

This transforms our multithreaded daemon into a single-threaded one.

This is the culmination of various big refactors I worked on since the last release. In particular, this is only possible because:

  1. of the great improvements we've made in making transitions more efficient on a single core, so that they can now be done in the same thread as everything else; and
  2. of our custom written wayland code, that makes it unnecessary to have Arc<Mutex> everywhere.

Without either of those, this refactor either wouldn't work or wouldn't bring many tangible benefits. But, because of them, this will make the daemon as efficient as it gets, as we are no longer spawning superfluous threads everywhere and keeping them in sync through locks and a weird polling system. It also completely eliminates any race conditions within the daemon (though race conditions related to the compositor or daemon-client interaction will remain).

LGFae added 6 commits August 8, 2024 19:04
@LGFae LGFae merged commit 886ce3e into main Aug 12, 2024
10 checks passed
@LGFae LGFae deleted the nuke-multithreading branch August 12, 2024 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant