aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/jobs/pool.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/nvim-lsp-installer/jobs/pool.lua')
-rw-r--r--lua/nvim-lsp-installer/jobs/pool.lua41
1 files changed, 0 insertions, 41 deletions
diff --git a/lua/nvim-lsp-installer/jobs/pool.lua b/lua/nvim-lsp-installer/jobs/pool.lua
deleted file mode 100644
index 78302643..00000000
--- a/lua/nvim-lsp-installer/jobs/pool.lua
+++ /dev/null
@@ -1,41 +0,0 @@
-local log = require "nvim-lsp-installer.log"
-
-local JobExecutionPool = {}
-JobExecutionPool.__index = JobExecutionPool
-
-function JobExecutionPool:new(opts)
- return setmetatable({
- size = opts.size,
- _queue = {},
- _supplied_jobs = 0,
- _running_jobs = 0,
- }, JobExecutionPool)
-end
-
-function JobExecutionPool:supply(fn)
- self._supplied_jobs = self._supplied_jobs + 1
- self._queue[#self._queue + 1] = setmetatable({
- id = self._supplied_jobs,
- }, {
- __call = function(_, ...)
- fn(...)
- end,
- })
- self:_dequeue()
-end
-
-function JobExecutionPool:_dequeue()
- log.fmt_trace("Dequeuing job running_jobs=%s, size=%s", self._running_jobs, self.size)
- if self._running_jobs < self.size and #self._queue > 0 then
- local dequeued = table.remove(self._queue, 1)
- self._running_jobs = self._running_jobs + 1
- log.fmt_trace("Dequeued job job_id=%s, running_jobs=%s, size=%s", dequeued.id, self._running_jobs, self.size)
- dequeued(function()
- log.fmt_trace("Job finished job_id=%s", dequeued.id)
- self._running_jobs = self._running_jobs - 1
- self:_dequeue()
- end)
- end
-end
-
-return JobExecutionPool