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

Multithreading #16

Open
maurer opened this issue Dec 13, 2016 · 1 comment
Open

Multithreading #16

maurer opened this issue Dec 13, 2016 · 1 comment
Labels

Comments

@maurer
Copy link
Owner

maurer commented Dec 13, 2016

In my original design (back when Holmes was still a server) I had multiple processing threads. I think this would be valuable to bring back because:

  • It may work well as an abstraction (e.g. for Make run_rule iterative instead of recursive #15 by having different threads manage different rules)
  • It gives an obvious opportunity for a performance gain by running multiple external functions simultaneously
  • It can be used to provide partial fault tolerance so that if an external function crashes, it doesn't need to bring down the whole Holmes process, just that rule.
  • It will pave the way for adding server functionality back at the end of the project.
@maurer
Copy link
Owner Author

maurer commented Jan 24, 2017

#33 removed all the reasons this was a release blocker - it solved #15 with async tasks, and gave the library code the structure it will need to be used as a server. Eventually, we'll want to add true multithreading (partially implemented in c899a28 with lifetime errors), but I'm removing it from the release milestone since the release blocking parts are gone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant