mirror of
https://github.com/9001/copyparty.git
synced 2026-10-05 17:31:12 +01:00
up2k: fix !e2d reload blocking uploads
This commit is contained in:
+9
-4
@@ -174,6 +174,7 @@ class Up2k(object):
|
||||
self.pp: Optional[ProgressPrinter] = None
|
||||
self.rescan_cond = threading.Condition()
|
||||
self.need_rescan: set[str] = set()
|
||||
self.have_e2d = False
|
||||
self.db_act = 0.0
|
||||
|
||||
self.reg_mutex = threading.Lock()
|
||||
@@ -253,6 +254,10 @@ class Up2k(object):
|
||||
with self.reload_mutex:
|
||||
if self.reload_flag < n:
|
||||
self.reload_flag = n
|
||||
if not self.have_e2d and not self.reloading:
|
||||
self.reloading = True
|
||||
Daemon(self._reload_thr)
|
||||
return
|
||||
with self.rescan_cond:
|
||||
self.rescan_cond.notify_all()
|
||||
|
||||
@@ -290,7 +295,7 @@ class Up2k(object):
|
||||
|
||||
def deferred_init(self) -> None:
|
||||
all_vols = self.asrv.vfs.all_vols
|
||||
have_e2d = self.init_indexes(all_vols, [], False)
|
||||
self.init_indexes(all_vols, [], False)
|
||||
|
||||
if self.stop:
|
||||
# up-mt consistency not guaranteed if init is interrupted;
|
||||
@@ -308,7 +313,7 @@ class Up2k(object):
|
||||
return
|
||||
|
||||
Daemon(self._snapshot, "up2k-snapshot")
|
||||
if have_e2d:
|
||||
if self.have_e2d:
|
||||
Daemon(self._hasher, "up2k-hasher")
|
||||
Daemon(self._sched_rescan, "up2k-rescan")
|
||||
if self.mtag:
|
||||
@@ -891,7 +896,7 @@ class Up2k(object):
|
||||
|
||||
def init_indexes(
|
||||
self, all_vols: dict[str, VFS], scan_vols: list[str], fscan: bool, gid: int = 0
|
||||
) -> bool:
|
||||
) -> None:
|
||||
if not gid:
|
||||
with self.mutex:
|
||||
gid = self.gid
|
||||
@@ -1128,7 +1133,7 @@ class Up2k(object):
|
||||
else:
|
||||
self.unpp()
|
||||
|
||||
return have_e2d
|
||||
self.have_e2d = self.have_e2d or have_e2d
|
||||
|
||||
def register_vpath(
|
||||
self, ptop: str, flags: dict[str, Any]
|
||||
|
||||
Reference in New Issue
Block a user