Re: Threads


#1

Never mind, I resolved the issue by reading a bit more. Sorry to waste
the thread.

Cheers,
Phy


#2

On Tuesday 14 October 2008 04:48 am, Phy P. wrote:

Never mind, I resolved the issue by reading a bit more.

Can you share with us?

Randy K.


#3

I think the reason is that there is nothing called thread.id and thats
why
threads die as they start excution


#4

2008/10/14 Piyush R. removed_email_address@domain.invalid:

I think the reason is that there is nothing called thread.id and thats why
threads die as they start excution

Now, this is strange reasoning. If we’re guessing: the reason is more
likely that main thread exited without waiting for other threads.
See:

17:00:15 OPSC_Gold_bas_dev_R1.2.3$ ruby -e ‘Thread.new { 10.times { p
1; sleep 10 } }; puts “done”’
1
done
17:09:33 OPSC_Gold_bas_dev_R1.2.3$

Kind regards

robert


#5

Phy P. wrote:

Yes, there was a bug in my code, that being a typo of thread.id (should
be Thread.id), but the biggest thing, was the fact that I needed to do a
thread join. So I added this:

threads.each {|eachThread| eachThread.join}

Now on to signaling!

I think your code still isn’t quite what you want. Try

require ‘thread’

threads = []
mutex = Mutex.new
STDOUT.sync = true

list = %w(aS, bS, cS, dS, eS, fS, gS, hS)

for space in list
threads << Thread.new(space) {|numericalSpace|
while true
mutex.synchronize do
puts “#{Thread.current.object_id}: #{numericalSpace}”
end
sleep 2.5
end
}
end

threads.each {|eachThread| eachThread.join}


#6

Hi guys,

threads = []

list = %w(aS, bS, cS, dS, eS, fS, gS, hS)

for space in list
threads << Thread.new(space) {|numericalSpace|
while 1
puts “#{Thread.id}: #{numericalSpace}”
sleep 2.5
end
}
end

Yes, there was a bug in my code, that being a typo of thread.id (should
be Thread.id), but the biggest thing, was the fact that I needed to do a
thread join. So I added this:

threads.each {|eachThread| eachThread.join}

Now on to signaling!

Cheers, Phy