feat(worker): add Prime scheduler abstractions + runner

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Mika Kuns
2026-04-28 08:57:02 +02:00
co-authored by Claude Opus 4.7
parent 4e90828653
commit f383645360
7 changed files with 110 additions and 0 deletions
@@ -0,0 +1,29 @@
namespace ClaudeDo.Worker.Prime;
public sealed class PrimeScheduleSignal : IPrimeScheduleSignal, IDisposable
{
private CancellationTokenSource _cts = new();
private readonly object _lock = new();
public CancellationToken CurrentToken
{
get { lock (_lock) return _cts.Token; }
}
public void Signal()
{
CancellationTokenSource old;
lock (_lock)
{
old = _cts;
_cts = new CancellationTokenSource();
}
try { old.Cancel(); } catch { /* already cancelled */ }
old.Dispose();
}
public void Dispose()
{
lock (_lock) _cts.Dispose();
}
}