Oops, it looks like I got your suggestion wrong, and had switched from Task.Supervisor.async_stream_nolink to Task.Supervisor.async_stream instead of Task.async_stream.
I’ve now tried switching to Task.async_stream both with a manual allow:
parent = self()
stream = Task.async_stream(
enum,
fn (item) ->
Ecto.Adapters.SQL.Sandbox.allow(Repo, parent, self())
my_func(item, 2) end,
[ordered: false, max_concurrency: 1]
)
results = Enum.to_list(stream)
and without:
stream = Task.async_stream(
enum,
fn (item) ->
my_func(item, 2) end,
[ordered: false, max_concurrency: 1]
)
results = Enum.to_list(stream)
And again unfortunately all to no noticeable effect: 19:08:14.135 [error] Postgrex.Protocol (#PID<0.658.0>) disconnected: ** (DBConnection.ConnectionError) owner #PID<0.1748.0> exited while client #PID<0.1751.0> is still running with: shutdown






















