Hiya 

Thanks - I just about worked that out - lol sorry - I now have another
threading problem though:

require \'net/telnet\'
require \'thread\'

require \'net/telnet\'
tn = Net::Telnet.new(\'Host\'       => \'ancient.anguish.org\',
                     \'Port\'       => \'2222\',
                     \'Telnetmode\' => true) { |str| print str }


tn.cmd(\"String\" => \"guest\") { |str| print str }


thr4 = Thread.new() do
loop do
tn.cmd(gets.chomp) { |str| print str }
end
end

thr3 = Thread.new() do
loop do
tn.waitfor(\"Match\" => /.+/) { |str| print str }
end
end


thr4.join

I have one thread to enter commands into the server and one thread to
listen to all the server repsonses that are going on all the time.

But this code here - it lets me enter 1 command - then it just listens
and I cant enter anymore commands

Any clue?

Thanks
Kingsley



On 06-30-2003 05:20 pm, you wrote:

> On Tue, Jul 01, 2003 at 01:12:50AM +0900, kingsley / icecode.org
wrote:
> > Hi
> > 
> > When I do this:
> > 
> > thr3 = Thread.new() do
> > loop do
> > puts \\\"thread\\\"
> > end
> > end
> > 
> > The loop only lasts for about 5 seconds - printing out
\\\'thread\\\' about
> > 100 times
> 
> To answer the question in the subject: yes, threading does work
properly :-)
> 
> When the main thread of your program reaches the end, all other
threads are
> killed too.
> 
> Add the following line at the end:
> 
>    thr3.join
> 
> (which means \"wait for thr3 to finish\", which of course it never
does).
> 
> Regards,
> 
> Brian.
> 
> 
>