Comments (8)
I'm guessing this is a limitation of the present block implementation /cc @halorgium
from reel.
The main issue here is the supervisor implementation, it sometimes uses blocks for configuration which show this error in exclusive
mode.
Is there a reason you are using an exclusive
block? I am guessing there is more surrounding code.
from reel.
just found
exclusive :start_server
this is works, thanks.
from reel.
bug remains when call method directly
require 'bundler/setup'
require 'reel'
require 'celluloid'
class A
include Celluloid
exclusive :start_server
def run
start_server
end
def start_server
@server = Reel::Server.supervise('127.0.0.1', 12345) do |connection|
while request = connection.request
connection.respond(Reel::Response.new(:ok, "Hello world"))
end
end
end
end
when
a = A.new
a.run
sleep
all is ok
when
a = A.new
a.start_server
sleep
Cannot execute blocks on sender in exclusive mode
from reel.
@kostya can you try master of both Celluloid and Reel? There were some bugs in the block changes where it wasn't being reflected by Reel.
Reel's block (the one passed to initialize) should get called on Reel itself, not "A", but that's what appears to be happening.
from reel.
on master all the same, run
works, start_server
fails.
except that, when stopping run
script, got (if it matter)
[2013-08-13T00:34:25.732398 #7571] DEBUG -- : Terminating 7 actors...
D, [2013-08-13T00:34:25.748397 #7571] DEBUG -- : Discarded message (mailbox is dead): #<Celluloid::ExitEvent:0x86672b0>
D, [2013-08-13T00:34:25.749087 #7571] DEBUG -- : Discarded message (mailbox is dead): #<Celluloid::TerminationRequest:0x8667738>
D, [2013-08-13T00:34:25.754866 #7571] DEBUG -- : Discarded message (mailbox is dead): #<Celluloid::TerminationRequest:0x8667990>
D, [2013-08-13T00:34:25.755403 #7571] DEBUG -- : Discarded message (mailbox is dead): #<Celluloid::ExitEvent:0x8667968>
D, [2013-08-13T00:34:25.757106 #7571] DEBUG -- : Discarded message (mailbox is dead): #<Celluloid::TerminationRequest:0x8666360>
W, [2013-08-13T00:34:25.757695 #7571] WARN -- : Terminating task: type=:call, meta={:method_name=>:run}, status=:iowait
D, [2013-08-13T00:34:25.758461 #7571] DEBUG -- : Discarded message (mailbox is dead): #<Celluloid::ExitEvent:0x86661d0>
12.rb:26:in `sleep': Interrupt
from 12.rb:26:in `<main>'
from reel.
It's odd you would get this error on master as Reel is specifically configured to execute its #initialize block on itself:
https://github.com/celluloid/reel/blob/master/lib/reel/server.rb#L8
/cc @halorgium any ideas?
from reel.
@kostya can you open an issue on Celluloid instead, if the issue persists in Celluloid 0.15?
from reel.
Related Issues (20)
- Failing test when setting ssl_params HOT 1
- Server configuration by block, versus by initialization options. HOT 2
- CLEANUP CRASHED! on Ctrl-C - JRuby / Windows environment HOT 1
- "Celluloid 0.17.2 is running in BACKPORTED mode" when running reel HOT 1
- Reel::Server shutdown does not handle IOError HOT 5
- http v1.0.0.pre1 breaks reel HOT 13
- 0.6.0 release can't ping websocket clients HOT 3
- Run tests in CI with Rubinious HOT 1
- 0.6.1: Actor crashed! can't change state from 'closed' to 'headers' HOT 4
- "ThreadError: can't create Thread: Resource temporarily unavailable" with multithreading HOT 3
- `accept` failing in ECell on Rubinius HOT 2
- Audit and incorporate GSoC contributions.
- Running in backported mode
- Incorrect link on documentation page HOT 4
- scanning and error
- Missing protocols definition on websocket driver
- bug in server_sent_events.rb example?
- How to upload a file?
- Use of deprecated ::Fixnum in connection.rb line 101
- Wrong number of args given (given 1, expected 0) : peeraddr called by remote_host in mixins.rb
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reel.