                      :dlo dlo
                      :maybe-send-cmd-event! maybe-send-cmd-event!
                      :q q
+                     :initial-gc-finished? initial-gc-finished?
                      :scf-read-db read-db
                      :scf-write-dbs write-db-pools
                      :scf-write-db-cfgs write-db-cfgs

               (with-nonfatal-exceptions-suppressed
                 (with-monitored-execution shutdown-for-ex
                   (let [incremental? (not @first?)]
                     (when-not incremental?
                       (reset! first? false))
                     (coordinate-gc-with-shutdown db clean-lock cfg lock-status
                                                  request stop-status
                                                  incremental?)))))]
      (interspaced interval #(invoke-periodic-gc gc initial-gc?) job-pool))))

(defn database-lock-status []


(defn start-garbage-collection
  [{:keys [clean-lock stop-status] :as context}
   job-pool db-configs db-pools db-lock-statuses shutdown-for-ex finished-initial-gc]
  (doseq [[cfg db lock-status] (map vector db-configs db-pools db-lock-statuses)
          :let [interval (to-millis (:gc-interval cfg))]
          :when (pos? interval)]
