I've noticed that in ActivityTaskHandler there's this unused code:
//TODO: Eventually these will need to be Redis locks once we have a multiple worker scenario
private readonly SemaphoreSlim incomingQueueLock = new SemaphoreSlim(1);
//TODO: This locking approach currently has a race condition that allows an activity task to be called multiple
// times. Will likely require a somewhat substantial redesign to fix.
private readonly ConcurrentDictionary<int, SemaphoreSlim> taskLocks;
I've noticed that in ActivityTaskHandler there's this unused code:
Was there some intention to be some locking here? I can help with implementing AsyncKeyedLock here, which is used in https://github.com/Azure/apiops, https://github.com/microsoft/Vipr and https://github.com/microsoft/kiota