                                          group future)))
                (error! "Failed to create any threads")))
           (total (length futures))
-          (timeout 20))
+          (timeout (or timeout 45)))
      (condition-case-unless-debug e
          (let (specs)
            (while futures

;;
;;; Dispatchers

(defcli! (update u) ()
  "Updates packages.

This excludes packages whose `package!' declaration contains a non-nil :freeze
or :ignore property."
  (doom--ensure-autoloads-while
   (straight-check-all)
   (doom-packages-update doom-auto-accept)))

(defcli! (rebuild build b) (&rest args)
  "Rebuilds all installed packages.

                                              (cdar futures)
                                              ", ")))
                     (throw 'timeout (pop futures)))
                   (sleep-for 1)
                   (when (cl-evenp time)
                     (print! "."))
                   (cl-incf time))
                 (cl-destructuring-bind (status . result)
                     (or (async-get (car (pop futures)))
                         (cons nil nil))
