-
Notifications
You must be signed in to change notification settings - Fork 121
Open
Description
As in the subject the Crystal version doesn't compile with version 1.4.1, something has changed.
This is how it should be:
`def skynet(c, num, size, div)
if size == 1
c.send num
else
rc = Channel(Int64|Float64).new
sum = 0_i64
div.times do |i|
sub_num = num + i*(size/div)
spawn skynet(rc, sub_num, size/div, div)
end
div.times do
sum += rc.receive
end
c.send sum
end
end
c = Channel(Int64|Float64).new
start_time = Time.local
spawn skynet(c, 0_i64, 1_000_000, 10)
result = c.receive
end_time = Time.local
puts "Result: #{result} in #{(end_time - start_time).total_milliseconds.to_i}ms."`
Note for linux users, the number of allowed threads have to be raised with
sysctl -w vm.max_map_count=10000000
Metadata
Metadata
Assignees
Labels
No labels