⚲
Project
General
Profile
Sign in
Register
Home
Projects
Help
Search
:
Ruby master
All Projects
Ruby
»
Ruby master
Overview
Activity
Roadmap
Issues
Repository
Like
Download (554 Bytes)
Bug #4266
» deadlock_test.rb
cjbottaro (Christopher Bottaro)
, 01/12/2011 01:59 AM
require
"thread"
require
"timeout"
def
calc_fib
(
n
)
if
n
==
0
0
elsif
n
==
1
1
else
calc_fib
(
n
-
1
)
+
calc_fib
(
n
-
2
)
end
end
lock
=
Mutex
.
new
threads
=
20
.
times
.
collect
do
Thread
.
new
do
20
.
times
do
begin
Timeout
.
timeout
(
0.25
)
do
lock
.
synchronize
{
calc_fib
(
1000
)
}
end
rescue
ThreadError
=>
e
puts
"
#{
e
.
class
}
:
#{
e
.
message
}
:
\n
"
+
e
.
backtrace
.
join
(
"
\n
"
)
+
"
\n\n
"
rescue
Timeout
::
Error
=>
e
#puts e.class
nil
end
end
end
end
threads
.
each
{
|
t
|
t
.
join
}
« Previous
1
2
3
4
Next »
(1-1/4)
Loading...