mirror of
https://github.com/ash-project/igniter.git
synced 2024-09-20 05:22:52 +12:00
fix: ensure no timeout on task async streams
This commit is contained in:
parent
6a86e2d5f6
commit
5bf53c8c07
2 changed files with 45 additions and 36 deletions
|
@ -108,9 +108,12 @@ defmodule Igniter do
|
||||||
end)
|
end)
|
||||||
|
|
||||||
paths
|
paths
|
||||||
|> Task.async_stream(fn path ->
|
|> Task.async_stream(
|
||||||
|
fn path ->
|
||||||
read_ex_source!(path)
|
read_ex_source!(path)
|
||||||
end)
|
end,
|
||||||
|
timeout: :infinity
|
||||||
|
)
|
||||||
|> Enum.reduce(igniter, fn {:ok, source}, igniter ->
|
|> Enum.reduce(igniter, fn {:ok, source}, igniter ->
|
||||||
%{igniter | rewrite: Rewrite.put!(igniter.rewrite, source)}
|
%{igniter | rewrite: Rewrite.put!(igniter.rewrite, source)}
|
||||||
end)
|
end)
|
||||||
|
|
|
@ -130,12 +130,15 @@ defmodule Igniter.Code.Module do
|
||||||
|
|
||||||
igniter
|
igniter
|
||||||
|> Map.get(:rewrite)
|
|> Map.get(:rewrite)
|
||||||
|> Task.async_stream(fn source ->
|
|> Task.async_stream(
|
||||||
|
fn source ->
|
||||||
{source
|
{source
|
||||||
|> Rewrite.Source.get(:quoted)
|
|> Rewrite.Source.get(:quoted)
|
||||||
|> Zipper.zip()
|
|> Zipper.zip()
|
||||||
|> move_to_defmodule(module_name), source}
|
|> move_to_defmodule(module_name), source}
|
||||||
end)
|
end,
|
||||||
|
timeout: :infinity
|
||||||
|
)
|
||||||
|> Enum.find_value({:error, igniter}, fn
|
|> Enum.find_value({:error, igniter}, fn
|
||||||
{:ok, {{:ok, zipper}, source}} ->
|
{:ok, {{:ok, zipper}, source}} ->
|
||||||
{:ok, {igniter, source, zipper}}
|
{:ok, {igniter, source, zipper}}
|
||||||
|
@ -155,7 +158,8 @@ defmodule Igniter.Code.Module do
|
||||||
matching_modules =
|
matching_modules =
|
||||||
igniter
|
igniter
|
||||||
|> Map.get(:rewrite)
|
|> Map.get(:rewrite)
|
||||||
|> Task.async_stream(fn source ->
|
|> Task.async_stream(
|
||||||
|
fn source ->
|
||||||
source
|
source
|
||||||
|> Rewrite.Source.get(:quoted)
|
|> Rewrite.Source.get(:quoted)
|
||||||
|> Zipper.zip()
|
|> Zipper.zip()
|
||||||
|
@ -184,7 +188,9 @@ defmodule Igniter.Code.Module do
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|> elem(1)
|
|> elem(1)
|
||||||
end)
|
end,
|
||||||
|
timeout: :infinity
|
||||||
|
)
|
||||||
|> Enum.flat_map(fn {:ok, v} ->
|
|> Enum.flat_map(fn {:ok, v} ->
|
||||||
v
|
v
|
||||||
end)
|
end)
|
||||||
|
|
Loading…
Reference in a new issue