Another culprit could be the net connection. That has had issues in the past 
too.



________________________________
From: Jimmy Schementi <[email protected]>
Sent: September 15, 2009 1:14 AM
To: [email protected] <[email protected]>
Subject: Re: [Ironruby-core] Threads in IronRuby

Ivan,

"Thread" could quite possibly be the culprit; do you know if it runs on JRuby? 
That would tell us if xmpp4r runs fine on implementations that use actual OS 
threads. Though, I'm not convinced the stack trace you got shows an issue with 
Thread; doing a Ctrl-C will send a ThreadAbort. I could do some investigation 
if you're still seeing this issue.

~js

________________________________
From: [email protected] [[email protected]] 
on behalf of Ivan Porto Carrero [[email protected]]
Sent: Thursday, August 27, 2009 11:28 AM
To: ironruby-core
Subject: [Ironruby-core] Threads in IronRuby

Hi

I just took a look at using xmpp4r with IronRuby.
Below you find the contents of my console session (I get the same result on 
windows). You can probably do the same without having a jabber server running 
locally :)

+i...@ivan-mbp:~/projects/xmpp_spike
(master)ยป ir
IronRuby 0.9.0.0 on Mono 2.4.2.3
Copyright (c) Microsoft Corporation. All rights reserved.

>>> csproj = ENV['CS_PROJECT_ROOT']
=> "/Users/ivan/projects/cloudslide"
>>> $:.unshift "#{csproj}/vendor/ruby/xmpp4r/lib"
=> ["/Users/ivan/projects/cloudslide/vendor/ruby/xmpp4r/lib", 
"/Users/ivan/projects/cloudslide/infrastructure/ironruby/lib", 
"/Users/ivan/projects/cloudslide/infrastructure/ironruby/lib/ironruby", 
"/Users/ivan/projects/cloudslide/infrastructure/ironruby/lib/ruby/site_ruby/1.8/",
 "/Users/ivan/projects/cloudslide/infrastructure/ironruby/lib/ruby/site_ruby/", 
"/Users/ivan/projects/cloudslide/infrastructure/ironruby/lib/ruby/1.8/", "."]
>>> include Jabber
:0:in `const_missing': uninitialized constant Object::Jabber (NameError)
from :0

>>> require 'xmpp4r/client'
=> true  # <= this seems to work :)
>>> include Jabber
=> Object
>>> client = Client.new(JID::new('[email protected]'))
=> #<Jabber::Client:0x0000070 @fd=nil, @status=1, 
@xmlcbs=#<Jabber::CallbackList:0x0000072 @list=[]>, 
@stanzacbs=#<Jabber::CallbackList:0x0000074 @list=[]>, 
@messagecbs=#<Jabber::CallbackList:0x0000076 @list=[]>, 
@iqcbs=#<Jabber::CallbackList:0x0000078 @list=[]>, 
@presencecbs=#<Jabber::CallbackList:0x000007a @list=[]>, 
@send_lock=IronRuby.StandardLibrary.Threading.RubyMutex, @last_send=Thu Aug 27 
18:43:18 +02:00 2009, @exception_block=nil, 
@tbcbmutex=IronRuby.StandardLibrary.Threading.RubyMutex, @threadblocks=[], 
@wakeup_thread=nil, @streamid=nil, @streamns="jabber:client", 
@features_sem=#<Jabber::Semaphore:0x000007c @tickets=0, 
@lock=IronRuby.StandardLibrary.Threading.RubyMutex, 
@cond=IronRuby.StandardLibrary.Threading.RubyConditionVariable>, 
@parser_thread=nil, @processing=0, @host=nil, @port=nil, @allow_tls="constant", 
@tls=false, @ssl_capath=nil, @ssl_verifycb=nil, @features_timeout=10, 
@keepalive_interval=60, @use_ssl=false, @jid=#<Jabber::JID:0x000006e 
@resource=nil, @domain="cloudslide.local", @node="ruby-test">>
>>> client.connect 'localhost'
=> Hit Ctrl-C here after a few minutes
mscorlib:0:in `Wait': Thread was being aborted 
(System::Threading::ThreadAbortException)
from :0:in `wait'
from 
/Users/ivan/projects/cloudslide/vendor/ruby/xmpp4r/lib/xmpp4r/semaphore.rb:23:in
 `wait'
from :0:in `synchronize'
from 
/Users/ivan/projects/cloudslide/vendor/ruby/xmpp4r/lib/xmpp4r/stream.rb:331:in 
`wait'
from 
/Users/ivan/projects/cloudslide/vendor/ruby/xmpp4r/lib/xmpp4r/stream.rb:397:in 
`send'
from 
/Users/ivan/projects/cloudslide/vendor/ruby/xmpp4r/lib/xmpp4r/client.rb:88:in 
`start'
from 
/Users/ivan/projects/cloudslide/vendor/ruby/xmpp4r/lib/xmpp4r/connection.rb:78:in
 `connect'
from 
/Users/ivan/projects/cloudslide/vendor/ruby/xmpp4r/lib/xmpp4r/client.rb:70:in 
`connect'
from :0
from mscorlib:0:in `CallSite.Target'
from Microsoft.Scripting.Core:0:in `invoke_object__this___Func`5<object, Proc, 
object, object, object>_object_Proc_object_object'


On the server I see the connection coming in.

=INFO REPORT==== 2009-08-27 18:52:00 ===
I(<0.262.0>:ejabberd_listener:116) : (#Port<0.3531>) Accepted connection 
{{127,0,0,1},61314} -> {{127,0,0,1},5222}

Can it be that the Thread implementation is in need of some attention?
---
Met vriendelijke groeten - Best regards - Salutations
Ivan Porto Carrero
Blog: http://flanders.co.nz
Twitter: http://twitter.com/casualjim
Author of IronRuby in Action (http://manning.com/carrero)

_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to