Skip to content

Commit 792d300

Browse files
Cleaning and enforcing consistent SDK version for total reproducible builds.
1 parent 48ab4cd commit 792d300

11 files changed

Lines changed: 22 additions & 33 deletions

File tree

AsyncKeyedLock.Tests/AsyncKeyedLocker/StressTests.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,10 @@ public async Task BenchmarkSimulationTest()
160160
Guid guid = Guid.NewGuid();
161161
var guidString = guid.ToString();
162162
guidString = guidString.Reverse().ToString();
163-
#pragma warning disable CS8602 // Dereference of a possibly null reference.
164-
if (guidString.Length != 53)
163+
if (guidString!.Length != 53)
165164
{
166165
throw new InvalidOperationException($"Not 53 but {guidString?.Length}");
167166
}
168-
#pragma warning restore CS8602 // Dereference of a possibly null reference.
169167
}
170168
}
171169

AsyncKeyedLock.Tests/StripedAsyncKeyedLocker/OriginalTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
using System.Collections;
12
using AsyncKeyedLock.Tests.Helpers;
23
using FluentAssertions;
3-
using System.Collections;
44
using Xunit;
55

66
namespace AsyncKeyedLock.Tests.StripedAsyncKeyedLocker;

AsyncKeyedLock.Tests/StripedAsyncKeyedLocker/StressTests.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,10 @@ public async Task BenchmarkSimulationTest()
160160
Guid guid = Guid.NewGuid();
161161
var guidString = guid.ToString();
162162
guidString = guidString.Reverse().ToString();
163-
#pragma warning disable CS8602 // Dereference of a possibly null reference.
164-
if (guidString.Length != 53)
163+
if (guidString!.Length != 53)
165164
{
166165
throw new InvalidOperationException($"Not 53 but {guidString?.Length}");
167166
}
168-
#pragma warning restore CS8602 // Dereference of a possibly null reference.
169167
}
170168
}
171169

AsyncKeyedLock.slnx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<File Path=".editorconfig" />
44
<File Path="Directory.Build.props" />
55
<File Path="Directory.Packages.props" />
6+
<File Path="global.json" />
67
<File Path="LICENSE" />
78
<File Path="stylecop.json" />
89
</Folder>

AsyncKeyedLock/AsyncKeyedLock.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
<PackageProjectUrl>https://github.com/MarkCiliaVincenti/AsyncKeyedLock</PackageProjectUrl>
88
<Copyright>MIT</Copyright>
99
<PackageLicenseExpression>MIT</PackageLicenseExpression>
10-
<Version>8.0.0</Version>
10+
<Version>8.0.1</Version>
1111
<Nullable>Enable</Nullable>
1212
<PackageIcon>logo.png</PackageIcon>
13-
<PackageReleaseNotes>Code quality, dropping non-generic, sealing, improved disposing, more null checks.</PackageReleaseNotes>
13+
<PackageReleaseNotes>Cleaning and enforcing consistent SDK version for total reproducible builds.</PackageReleaseNotes>
1414
<Description>An asynchronous .NET library that allows you to lock based on a key (keyed semaphores), limiting concurrent threads sharing the same key to a specified number, with optional pooling for reducing memory allocations.</Description>
1515
<Copyright>© 2026 Mark Cilia Vincenti</Copyright>
1616
<PackageTags>async,lock,key,keyed,semaphore,striped,dictionary,concurrentdictionary,pooling,duplicate,synchronization</PackageTags>
1717
<RepositoryType>git</RepositoryType>
1818
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
19-
<AssemblyVersion>8.0.0.0</AssemblyVersion>
20-
<FileVersion>8.0.0.0</FileVersion>
19+
<AssemblyVersion>8.0.1.0</AssemblyVersion>
20+
<FileVersion>8.0.1.0</FileVersion>
2121
<PackageReadmeFile>README.md</PackageReadmeFile>
2222
<IsPackable>true</IsPackable>
2323
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>

AsyncKeyedLock/AsyncKeyedLockDictionary.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,7 @@ public AsyncKeyedLockReleaser<TKey> GetOrAdd(TKey key)
7373
return releaser;
7474
}
7575

76-
#pragma warning disable CS8602 // Dereference of a possibly null reference.
77-
var releaserToAdd = _pool.GetObject(key);
78-
#pragma warning restore CS8602 // Dereference of a possibly null reference.
76+
var releaserToAdd = _pool!.GetObject(key);
7977
if (TryAdd(key, releaserToAdd))
8078
{
8179
return releaserToAdd;
@@ -123,9 +121,8 @@ public void Release(AsyncKeyedLockReleaser<TKey> releaser)
123121
{
124122
if (PoolingEnabled)
125123
{
126-
#pragma warning disable CS8602 // Dereference of a possibly null reference.
127124
#if NET9_0_OR_GREATER
128-
releaser.Lock.Enter();
125+
releaser.Lock!.Enter();
129126
#else
130127
Monitor.Enter(releaser);
131128
#endif
@@ -150,7 +147,6 @@ public void Release(AsyncKeyedLockReleaser<TKey> releaser)
150147
#else
151148
Monitor.Exit(releaser);
152149
#endif
153-
#pragma warning restore CS8602 // Dereference of a possibly null reference.
154150
}
155151
else
156152
{
@@ -176,9 +172,8 @@ public void ReleaseWithoutSemaphoreRelease(AsyncKeyedLockReleaser<TKey> releaser
176172
{
177173
if (PoolingEnabled)
178174
{
179-
#pragma warning disable CS8602 // Dereference of a possibly null reference.
180175
#if NET9_0_OR_GREATER
181-
releaser.Lock.Enter();
176+
releaser.Lock!.Enter();
182177
#else
183178
Monitor.Enter(releaser);
184179
#endif
@@ -201,7 +196,6 @@ public void ReleaseWithoutSemaphoreRelease(AsyncKeyedLockReleaser<TKey> releaser
201196
#else
202197
Monitor.Exit(releaser);
203198
#endif
204-
#pragma warning restore CS8602 // Dereference of a possibly null reference.
205199
}
206200
else
207201
{

AsyncKeyedLock/AsyncKeyedLockPool.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ public AsyncKeyedLockPool(AsyncKeyedLockDictionary<TKey> asyncKeyedLockDictionar
3030
{
3131
for (int i = 0; i < capacity; ++i)
3232
{
33-
#pragma warning disable CS8604 // Possible null reference argument.
34-
var releaser = _objectGenerator(default);
35-
#pragma warning restore CS8604 // Possible null reference argument.
33+
var releaser = _objectGenerator(default!);
3634
releaser.IsNotInUse = true;
3735
_objects.Add(releaser);
3836
}
@@ -42,9 +40,7 @@ public AsyncKeyedLockPool(AsyncKeyedLockDictionary<TKey> asyncKeyedLockDictionar
4240
initialFill = Math.Min(initialFill, capacity);
4341
for (int i = 0; i < initialFill; ++i)
4442
{
45-
#pragma warning disable CS8604 // Possible null reference argument.
46-
var releaser = _objectGenerator(default);
47-
#pragma warning restore CS8604 // Possible null reference argument.
43+
var releaser = _objectGenerator(default!);
4844
releaser.IsNotInUse = true;
4945
_objects.Add(releaser);
5046
}

AsyncKeyedLock/AsyncKeyedLockReleaser.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,8 @@ internal AsyncKeyedLockReleaser(TKey key, SemaphoreSlim semaphoreSlim, AsyncKeye
7373
[MethodImpl(MethodImplOptions.AggressiveInlining)]
7474
internal bool TryIncrement(TKey key)
7575
{
76-
#pragma warning disable CS8602 // Dereference of a possibly null reference.
7776
#if NET9_0_OR_GREATER
78-
if (Lock.TryEnter())
77+
if (Lock!.TryEnter())
7978
#else
8079
if (Monitor.TryEnter(this))
8180
#endif
@@ -98,7 +97,6 @@ internal bool TryIncrement(TKey key)
9897
return true;
9998
}
10099
return false;
101-
#pragma warning restore CS8602 // Dereference of a possibly null reference.
102100
}
103101

104102
[MethodImpl(MethodImplOptions.AggressiveInlining)]

AsyncKeyedLock/AsyncKeyedLocker.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1952,9 +1952,8 @@ public bool IsInUse(TKey key)
19521952

19531953
if (_dictionary.PoolingEnabled)
19541954
{
1955-
#pragma warning disable CS8602 // Dereference of a possibly null reference.
19561955
#if NET9_0_OR_GREATER
1957-
result.Lock.Enter();
1956+
result.Lock!.Enter();
19581957
#else
19591958
Monitor.Enter(result);
19601959
#endif
@@ -1981,7 +1980,6 @@ public bool IsInUse(TKey key)
19811980
#else
19821981
Monitor.Exit(result);
19831982
#endif
1984-
#pragma warning restore CS8602 // Dereference of a possibly null reference.
19851983
}
19861984
else
19871985
{

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
</PropertyGroup>
55
<ItemGroup>
66
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
7-
<PackageVersion Include="DotNet.ReproducibleBuilds" Version="1.2.39" />
7+
<PackageVersion Include="DotNet.ReproducibleBuilds" Version="2.0.1" />
88
<PackageVersion Include="FluentAssertions" Version="8.8.0" />
99
<PackageVersion Include="ListShuffle" Version="2.1.3" />
1010
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />

0 commit comments

Comments
 (0)