In the following example:
def recursion(n)
if n == 0 then
1
else
(n * recursion(n-1)) **2
end
end
th1 = Thread.new {
print recursion (50)
}
th1.priority = -5
th2 = Thread.new {
sleep .1
th1.kill()
}
th2.priority = 4
th1.join()
thread th2 should kill th1, but this is not the case!
BUT if
def recursion(n)
x = 0
while 1 do
x = x + 1
end
end
th1 is correctly killed!
Any reason for this misbehavior?
Clemens