Pārlūkot izejas kodu

Experimental: use spawn() in pkar_watch.

scossu 1 nedēļu atpakaļ
vecāks
revīzija
85f6a52f04
1 mainītis faili ar 9 papildinājumiem un 3 dzēšanām
  1. 9 3
      src/util/watcher.lua

+ 9 - 3
src/util/watcher.lua

@@ -5,11 +5,12 @@ local plpath = require "pl.path"
 local posix = require "posix"
 local signal = require "posix.signal"
 local sllog = require "sllog"
+local unistd = require "posix.unistd"
 local watchdog = require "watchdog"
 
 local pkar = require "pocket_archive"
 local logger = pkar.logger
-local pres = require "pocket_archive.presntation"
+local pres = require "pocket_archive.presentation"
 local sub = require "pocket_archive.submission"
 
 
@@ -78,10 +79,15 @@ cli.program {
             logger:info("\n")
             if ev.name:find("pkar_submission.*%.csv") then
                 logger:info("Detected new submission file: ", ev.name)
-                posix.popen(function()
+                posix.spawn(function()
+                    local cpid = unistd.getpid()
+                    logger:info("Starting deposit process with pid: " .. cpid)
                     sub.deposit(plpath.join(args.path, ev.name), args.cleanup)
                     if args.gen_site then pres.generate_site() end
-                end)
+                    logger:info(cpid .. ": sleeping...")
+                    require "socket".sleep(3)
+                    logger:info(cpid .. ": complete.")
+                end, "r")
             end
         end)