aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/fetch.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-12-26 17:43:01 +0100
committerGitHub <noreply@github.com>2022-12-26 17:43:01 +0100
commit21a2475da458e97be798bdc9261da24460da5c65 (patch)
tree7138d6b8d3badd52b738d773449c9a388a1af540 /lua/mason-core/fetch.lua
parentfeat(powershell): set $ErrorActionPreference = "Stop"; (#807) (diff)
downloadmason-21a2475da458e97be798bdc9261da24460da5c65.tar
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.gz
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.bz2
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.lz
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.xz
mason-21a2475da458e97be798bdc9261da24460da5c65.tar.zst
mason-21a2475da458e97be798bdc9261da24460da5c65.zip
refactor: interact with libuv pipes in async context (#808)
Also now properly close pipes (shutdown -> close).
Diffstat (limited to 'lua/mason-core/fetch.lua')
-rw-r--r--lua/mason-core/fetch.lua11
1 files changed, 7 insertions, 4 deletions
diff --git a/lua/mason-core/fetch.lua b/lua/mason-core/fetch.lua
index fbb755b8..a6db7c6b 100644
--- a/lua/mason-core/fetch.lua
+++ b/lua/mason-core/fetch.lua
@@ -1,3 +1,5 @@
+local a = require "mason-core.async"
+local async_uv = require "mason-core.async.uv"
local log = require "mason-core.log"
local platform = require "mason-core.platform"
local Result = require "mason-core.result"
@@ -105,14 +107,15 @@ local function fetch(url, opts)
opts.data and { "-d", "@-" } or vim.NIL,
opts.out_file and { "-o", opts.out_file } or vim.NIL,
url,
- on_spawn = function(_, stdio)
+ on_spawn = a.scope(function(_, stdio)
local stdin = stdio[1]
if opts.data then
log.trace("Writing stdin to curl", opts.data)
- stdin:write(opts.data)
+ async_uv.write(stdin, opts.data)
end
- stdin:close()
- end,
+ async_uv.shutdown(stdin)
+ async_uv.close(stdin)
+ end),
}
end