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

Refactor GirlFriday::WorkQueue to use Celluloid #8

Closed
wants to merge 13 commits into from

Conversation

tarcieri
Copy link
Collaborator

FYI: this isn't quite ready to pull yet as the tests are still broken. See below.

I took a crack at refactoring girl_friday to use Celluloid rather than the Erlang-in-Ruby actor API. This is a fairly significant change and pretty much entailed completely rewriting GirlFriday::WorkQueue.

A brief synopsis of the changes:

  • The Erlang-in-Ruby actor goop is now factored into two classes of Celluloid-based concurrent objects: GirlFriday::Runner and GirlFriday::Worker.
  • Each GirlFriday::WorkQueue has an associated GirlFriday::Runner concurrent object which is managed by a Celluloid::Supervisor and automatically restarted in the event that it crashes
  • GirlFriday::Runner is extensively tested but the tests for GirlFriday::WorkQueue are broken and likely need to be refactored.

Sorry for submitting a half-baked pull request with broken tests, but I wanted to know first if this sort of change would be accepted and if so, how to proceed with changing the tests to get them passing again.

@mperham
Copy link
Owner

mperham commented May 19, 2011

I'll give you the commit bit. Please pull this into a separate branch and we can hack on it for a bit and see how well it works. I need to examine Celluloid closer to get a feel for its API and how this might benefit girl_friday.

@tarcieri
Copy link
Collaborator Author

Cool, pushed to your repo under the "celluloid" branch

@tarcieri tarcieri closed this May 19, 2011
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.

None yet

2 participants