feat(worker): add Prime scheduler abstractions + runner
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
4e90828653
commit
f383645360
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user