push
1903 of 2443 relevant lines covered (77.9%)
541.94 hits per line
| 1 |
module Concurrent |
1✔ |
| 2 |
|
|
| 3 |
class PerThreadExecutor |
1✔ |
| 4 |
|
|
| 5 |
def self.post(*args) |
1✔ |
| 6 |
raise ArgumentError.new('no block given') unless block_given? |
1,356✔ |
| 7 |
Thread.new(*args) do |
1,356✔ |
| 8 |
Thread.current.abort_on_exception = false |
1,321✔ |
| 9 |
yield(*args)
|
1,321✔ |
| 10 |
end
|
|
| 11 |
return true |
1,356✔ |
| 12 |
end
|
|
| 13 |
|
|
| 14 |
def post(*args, &task) |
1✔ |
| 15 |
return PerThreadExecutor.post(*args, &task) |
1,356✔ |
| 16 |
end
|
|
| 17 |
|
|
| 18 |
def <<(task) |
1✔ |
| 19 |
PerThreadExecutor.post(&task)
|
× |
| 20 |
return self |
× |
| 21 |
end
|
|
| 22 |
end
|
|
| 23 |
end
|