Skip to content

Fix/max concurrent transcodes#12

Open
negativeeddy wants to merge 2 commits into
masterfrom
fix/max-concurrent-transcodes
Open

Fix/max concurrent transcodes#12
negativeeddy wants to merge 2 commits into
masterfrom
fix/max-concurrent-transcodes

Conversation

@negativeeddy

Copy link
Copy Markdown
Owner

No description provided.

ARM Dotnet Port added 2 commits July 16, 2026 14:39
RunStreamingAsync previously threw InvalidOperationException on any
non-zero exit code, discarding MakeMKV's rich status codes (253=no disc,
254=bad key, etc.) and creating an inconsistent API with RunAsync (which
returns the exit code in CliResult).

Changes:
- ICliProcessRunner signature: IAsyncEnumerable<string> →
  IAsyncEnumerable<(string? Line, int? ExitCode)>
- CliProcessRunner: yields (line, null) for stdout lines,
  then (null, exitCode) as final sentinel — same pattern as
  RunStreamingAllAsync
- MakeMkvService 3 call sites: destructure tuple, log warning
  on non-zero exit instead of crashing
- Tests: ToAsyncStream helper updated to yield tuple+sentinel;
  mock defaults updated

0 build warnings, 0 regressions in tests.
…n every acquire

Previously the limiter read the setting once at construction via
IOptions<ArmSettings> and created a fixed-size SemaphoreSlim. Changes
made via the Settings UI (persisted to the DB RipperSettings table)
were never picked up without a restart.

Replaced SemaphoreSlim with a dynamic count-and-queue gate that calls
SettingsHelper.GetEffectiveSettingsAsync on every AcquireAsync, so
UI changes take effect immediately. Cancelled waiters are skipped in
the release loop. Limit <= 0 still means unlimited (noop lease).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant