ref: 2b543568946f65d4e06a8826a04ad8f14473cab2
parent: e934575d76d90d0a1e3bf6c9342e76ef9db4a011
author: Ori Bernstein <ori@eigenstate.org>
date: Fri Dec 12 21:18:20 EST 2025
gefs: remove epoch around chsend this chsend epoch can cause deadlocks at shutdown, and epoch bloat at other times; we don't access the tree, so don't do it.
--- a/sys/src/cmd/gefs/fs.c
+++ b/sys/src/cmd/gefs/fs.c
@@ -3086,7 +3086,7 @@
}
void
-runtasks(int tid, void *)
+runtasks(int, void *)
{vlong now;
Mount *mnt;
@@ -3099,9 +3099,7 @@
sleep(5000);
if(agetl(&fs->rdonly))
continue;
- epochstart(tid);
if(waserror()){- epochend(tid);
fprint(2, "task error: %s\n", errmsg());
continue;
}
@@ -3119,8 +3117,6 @@
for(i = 0; i < nelem(mnt->cron); i++)
cronsync(mnt->name, &mnt->cron[i], &tm, now);
}
- epochend(tid);
- epochclean();
poperror();
}
}
--- a/sys/src/cmd/gefs/main.c
+++ b/sys/src/cmd/gefs/main.c
@@ -476,7 +476,7 @@
xlaunch(runcons, (void*)ctlfd, aincl(&fs->nworker, 1), "ctl");
xlaunch(runmutate, nil, aincl(&fs->nworker, 1), "mutate");
xlaunch(runsweep, nil, aincl(&fs->nworker, 1), "sweep");
- xlaunch(runtasks, nil, aincl(&fs->nworker, 1), "tasks");
+ xlaunch(runtasks, nil, -1, "tasks");
for(i = 0; i < fs->nreaders; i++)
xlaunch(runread, fs->rdchan[i], aincl(&fs->nworker, 1), "readio");
for(i = 0; i < fs->nsyncers; i++)
--
⑨