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

fix issue #40: make internal message queues unlimited #41

Closed
wants to merge 1 commit into from

Conversation

niamster
Copy link
Contributor

No description provided.

@tarcieri
Copy link
Member

Seems ok, but keep this in mind:

https://twitter.com/mrb_bk/status/395301262238838784

@digitalextremist
Copy link
Member

I see this is brought up by #40, but could we rather set a configurable buffer size?

@niamster
Copy link
Contributor Author

@tarcieri I totally agree though I don't see a better way to fix this. Maybe before sending an IPC message check the queue status and reschedule. I don't know whether this will work as the reader and writer are in the same celluloid context if I understand correctly.

@digitalextremist we can though we need a mechanism to fix the deadlock w/o throwing exception "stop producing too many work".

@niamster
Copy link
Contributor Author

In fact the root cause of the deadlock is that celluloid holds a mutex while calling reactor.wakeup.
Does it make sense to call wake under the lock? I'll create another issue on celluloid side to raise discussion.

@tarcieri
Copy link
Member

@niamster the general idea of this sort of wakeup system is it should be possible to wake up the loop even though another thread is holding the lock. If not, it's a bug

@niamster
Copy link
Contributor Author

The real issue is celluloid/celluloid#500

@niamster niamster closed this Mar 17, 2015
@niamster niamster deleted the master branch March 17, 2015 22:24
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.

3 participants