diff --git a/src/CookieCrumble/src/CookieCrumble/Snapshot.cs b/src/CookieCrumble/src/CookieCrumble/Snapshot.cs index 049a2b29589..7cdcef8592d 100644 --- a/src/CookieCrumble/src/CookieCrumble/Snapshot.cs +++ b/src/CookieCrumble/src/CookieCrumble/Snapshot.cs @@ -15,7 +15,7 @@ namespace CookieCrumble; public class Snapshot { -#if NET10_0_OR_GREATER +#if NET9_0_OR_GREATER private static readonly Lock s_sync = new(); #else private static readonly object s_sync = new(); diff --git a/src/GreenDonut/src/GreenDonut.Data/Cursors/CursorKeySerializerRegistration.cs b/src/GreenDonut/src/GreenDonut.Data/Cursors/CursorKeySerializerRegistration.cs index 8fb6c10f240..199ca4cff09 100644 --- a/src/GreenDonut/src/GreenDonut.Data/Cursors/CursorKeySerializerRegistration.cs +++ b/src/GreenDonut/src/GreenDonut.Data/Cursors/CursorKeySerializerRegistration.cs @@ -7,7 +7,11 @@ namespace GreenDonut.Data.Cursors; /// public static class CursorKeySerializerRegistration { +#if NET9_0_OR_GREATER + private static readonly Lock s_sync = new(); +#else private static readonly object s_sync = new(); +#endif private static ICursorKeySerializer[] s_serializers = [ diff --git a/src/GreenDonut/src/GreenDonut/DataLoaderBase.cs b/src/GreenDonut/src/GreenDonut/DataLoaderBase.cs index c4d01e8ee7e..d6f9c531ff6 100644 --- a/src/GreenDonut/src/GreenDonut/DataLoaderBase.cs +++ b/src/GreenDonut/src/GreenDonut/DataLoaderBase.cs @@ -25,7 +25,11 @@ public abstract partial class DataLoaderBase : IDataLoader where TKey : notnull { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly IBatchScheduler _batchScheduler; private readonly int _maxBatchSize; private readonly IDataLoaderDiagnosticEvents _diagnosticEvents; diff --git a/src/GreenDonut/src/GreenDonut/PromiseCache.cs b/src/GreenDonut/src/GreenDonut/PromiseCache.cs index f828262780e..a6798699513 100644 --- a/src/GreenDonut/src/GreenDonut/PromiseCache.cs +++ b/src/GreenDonut/src/GreenDonut/PromiseCache.cs @@ -10,7 +10,11 @@ namespace GreenDonut; public sealed class PromiseCache : IPromiseCache { private const int MinimumSize = 10; +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly ConcurrentDictionary _map = new(); private readonly ConcurrentDictionary> _subscriptions = new(); private readonly List _promises = []; diff --git a/src/HotChocolate/Adapters/test/Adapters.Mcp.Tests/TestMcpStorage.cs b/src/HotChocolate/Adapters/test/Adapters.Mcp.Tests/TestMcpStorage.cs index 71e294206e6..a345ad2435f 100644 --- a/src/HotChocolate/Adapters/test/Adapters.Mcp.Tests/TestMcpStorage.cs +++ b/src/HotChocolate/Adapters/test/Adapters.Mcp.Tests/TestMcpStorage.cs @@ -12,7 +12,11 @@ public sealed class TestMcpStorage : IMcpStorage, IDisposable private ImmutableList> _promptSessions = []; private ImmutableList> _toolSessions = []; private bool _disposed; +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif public async ValueTask> GetPromptDefinitionsAsync( CancellationToken cancellationToken = default) diff --git a/src/HotChocolate/AspNetCore/src/Transport.Sockets.Client/Protocols/MessageStream.cs b/src/HotChocolate/AspNetCore/src/Transport.Sockets.Client/Protocols/MessageStream.cs index 6235a4a375b..320e1eef4cd 100644 --- a/src/HotChocolate/AspNetCore/src/Transport.Sockets.Client/Protocols/MessageStream.cs +++ b/src/HotChocolate/AspNetCore/src/Transport.Sockets.Client/Protocols/MessageStream.cs @@ -4,7 +4,11 @@ namespace HotChocolate.Transport.Sockets.Client.Protocols; internal sealed class MessageStream : IObservable, IObserver { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private ImmutableList _subscriptions = []; public IDisposable Subscribe(IObserver observer) diff --git a/src/HotChocolate/AzureFunctions/src/HotChocolate.AzureFunctions.IsolatedProcess/AzureHttpResponse.cs b/src/HotChocolate/AzureFunctions/src/HotChocolate.AzureFunctions.IsolatedProcess/AzureHttpResponse.cs index 7d8cbdfcb3c..34ce7234c7b 100644 --- a/src/HotChocolate/AzureFunctions/src/HotChocolate.AzureFunctions.IsolatedProcess/AzureHttpResponse.cs +++ b/src/HotChocolate/AzureFunctions/src/HotChocolate.AzureFunctions.IsolatedProcess/AzureHttpResponse.cs @@ -13,7 +13,11 @@ internal sealed class AzureHttpResponse : HttpResponse private ImmutableList<(Func, object)> _onCompletedCallbacks = []; private readonly HttpResponse _response; private readonly HttpRequestData _requestData; +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private HttpResponseData? _responseData; private AzureHeaderDictionary? _headers; private PipeWriter? _writer; diff --git a/src/HotChocolate/Core/src/Subscriptions.Postgres/CopyOnWriteList.cs b/src/HotChocolate/Core/src/Subscriptions.Postgres/CopyOnWriteList.cs index f2595b87931..d1a8a80a4a4 100644 --- a/src/HotChocolate/Core/src/Subscriptions.Postgres/CopyOnWriteList.cs +++ b/src/HotChocolate/Core/src/Subscriptions.Postgres/CopyOnWriteList.cs @@ -2,7 +2,11 @@ namespace HotChocolate.Subscriptions.Postgres; internal sealed class CopyOnWriteList where T : class { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private T[] _items = []; diff --git a/src/HotChocolate/Core/src/Types.Analyzers/Helpers/PooledObjects.cs b/src/HotChocolate/Core/src/Types.Analyzers/Helpers/PooledObjects.cs index a2bccfc4da4..b20bff8faa0 100644 --- a/src/HotChocolate/Core/src/Types.Analyzers/Helpers/PooledObjects.cs +++ b/src/HotChocolate/Core/src/Types.Analyzers/Helpers/PooledObjects.cs @@ -15,7 +15,11 @@ public static class PooledObjects new ConcurrentDictionary[8]; private static int s_nextStringDictionaryIndex = -1; +#if NET9_0_OR_GREATER + private static readonly Lock s_lock = new(); +#else private static readonly object s_lock = new(); +#endif public static StringBuilder GetStringBuilder() { diff --git a/src/HotChocolate/Core/src/Types/Execution/Processing/AsyncManualResetEvent.cs b/src/HotChocolate/Core/src/Types/Execution/Processing/AsyncManualResetEvent.cs index 171e759ebcd..bfee3f63b64 100644 --- a/src/HotChocolate/Core/src/Types/Execution/Processing/AsyncManualResetEvent.cs +++ b/src/HotChocolate/Core/src/Types/Execution/Processing/AsyncManualResetEvent.cs @@ -5,7 +5,11 @@ namespace HotChocolate.Execution.Processing; internal sealed class AsyncManualResetEvent : INotifyCompletion { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private Action? _continuation; private bool _continue; diff --git a/src/HotChocolate/Core/src/Types/Execution/Processing/DeferExecutionCoordinator.cs b/src/HotChocolate/Core/src/Types/Execution/Processing/DeferExecutionCoordinator.cs index 09fc2d0fa91..db23df42c17 100644 --- a/src/HotChocolate/Core/src/Types/Execution/Processing/DeferExecutionCoordinator.cs +++ b/src/HotChocolate/Core/src/Types/Execution/Processing/DeferExecutionCoordinator.cs @@ -7,7 +7,11 @@ namespace HotChocolate.Execution.Processing; internal sealed partial class DeferExecutionCoordinator { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly Dictionary _branchIdLookup = []; private readonly Dictionary _branchLookup = []; private HashSet? _mainBranchChildren; diff --git a/src/HotChocolate/Core/src/Types/Execution/Processing/OperationResultBuilder.cs b/src/HotChocolate/Core/src/Types/Execution/Processing/OperationResultBuilder.cs index 36f9ccc1f11..9902eead077 100644 --- a/src/HotChocolate/Core/src/Types/Execution/Processing/OperationResultBuilder.cs +++ b/src/HotChocolate/Core/src/Types/Execution/Processing/OperationResultBuilder.cs @@ -7,7 +7,11 @@ namespace HotChocolate.Execution; internal sealed class OperationResultBuilder : IOperationResultBuilder { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif public int RequestIndex { get; set; } = -1; diff --git a/src/HotChocolate/Core/src/Types/Execution/Processing/WorkScheduler.Pooling.cs b/src/HotChocolate/Core/src/Types/Execution/Processing/WorkScheduler.Pooling.cs index e414aba7734..a7fd187e925 100644 --- a/src/HotChocolate/Core/src/Types/Execution/Processing/WorkScheduler.Pooling.cs +++ b/src/HotChocolate/Core/src/Types/Execution/Processing/WorkScheduler.Pooling.cs @@ -7,7 +7,11 @@ namespace HotChocolate.Execution.Processing; internal sealed partial class WorkScheduler(OperationContext operationContext) { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly WorkQueue _work = new(); private readonly WorkQueue _serial = new(); private readonly AsyncManualResetEvent _signal = new(); diff --git a/src/HotChocolate/Core/src/Types/Fetching/AsyncAutoResetEvent.cs b/src/HotChocolate/Core/src/Types/Fetching/AsyncAutoResetEvent.cs index 3ccecc0b89d..2e2d57f8b2e 100644 --- a/src/HotChocolate/Core/src/Types/Fetching/AsyncAutoResetEvent.cs +++ b/src/HotChocolate/Core/src/Types/Fetching/AsyncAutoResetEvent.cs @@ -5,7 +5,11 @@ namespace HotChocolate.Fetching; internal sealed class AsyncAutoResetEvent : INotifyCompletion { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private Action? _continuation; private bool _isSignaled; diff --git a/src/HotChocolate/Core/src/Types/Fetching/BatchDispatcher.cs b/src/HotChocolate/Core/src/Types/Fetching/BatchDispatcher.cs index 33cde4796c7..f513d282a48 100644 --- a/src/HotChocolate/Core/src/Types/Fetching/BatchDispatcher.cs +++ b/src/HotChocolate/Core/src/Types/Fetching/BatchDispatcher.cs @@ -21,7 +21,11 @@ namespace HotChocolate.Fetching; public sealed partial class BatchDispatcher : IBatchDispatcher { private readonly AsyncAutoResetEvent _signal = new(); +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly HashSet _enqueuedBatches = []; private readonly CancellationTokenSource _coordinatorCts = new(); private readonly IDataLoaderDiagnosticEvents _diagnosticEvents; diff --git a/src/HotChocolate/Core/src/Types/Internal/TypeCache.cs b/src/HotChocolate/Core/src/Types/Internal/TypeCache.cs index 8b7b7ac26cc..0815c1abcba 100644 --- a/src/HotChocolate/Core/src/Types/Internal/TypeCache.cs +++ b/src/HotChocolate/Core/src/Types/Internal/TypeCache.cs @@ -4,7 +4,11 @@ namespace HotChocolate.Internal; internal sealed class TypeCache { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly Dictionary _types = []; private readonly Dictionary _typeMemberLookup = []; private readonly Dictionary _typeInfos = []; diff --git a/src/HotChocolate/Core/src/Types/Types/Descriptors/TypeConfiguration.cs b/src/HotChocolate/Core/src/Types/Types/Descriptors/TypeConfiguration.cs index 6937142254f..91defea0ed9 100644 --- a/src/HotChocolate/Core/src/Types/Types/Descriptors/TypeConfiguration.cs +++ b/src/HotChocolate/Core/src/Types/Types/Descriptors/TypeConfiguration.cs @@ -6,7 +6,11 @@ namespace HotChocolate.Types.Descriptors; /// public sealed class TypeConfigurationContainer { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly HashSet _created = []; private readonly Dictionary> _configurations = []; private readonly Dictionary> _namedConfigurations = []; diff --git a/src/HotChocolate/Core/test/Execution.Tests/Integration/Spec/MutationTests.cs b/src/HotChocolate/Core/test/Execution.Tests/Integration/Spec/MutationTests.cs index 0ed789050fc..95e16c724c0 100644 --- a/src/HotChocolate/Core/test/Execution.Tests/Integration/Spec/MutationTests.cs +++ b/src/HotChocolate/Core/test/Execution.Tests/Integration/Spec/MutationTests.cs @@ -73,7 +73,11 @@ public class Mutation1 private int _order; private bool _a; private bool _b; +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif public async Task A() { diff --git a/src/HotChocolate/Core/test/Subscriptions.Postgres.Tests/TestChannel.cs b/src/HotChocolate/Core/test/Subscriptions.Postgres.Tests/TestChannel.cs index 5a3a8f5e4c4..1f53c2dbb75 100644 --- a/src/HotChocolate/Core/test/Subscriptions.Postgres.Tests/TestChannel.cs +++ b/src/HotChocolate/Core/test/Subscriptions.Postgres.Tests/TestChannel.cs @@ -7,7 +7,11 @@ public class TestChannel : IDisposable private readonly NpgsqlConnection _connection; private readonly string _channelName; private readonly Func _connectionFactory; +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif public List ReceivedMessages { get; } = []; diff --git a/src/HotChocolate/Core/test/Types.Tests/Types/InputParserTests.cs b/src/HotChocolate/Core/test/Types.Tests/Types/InputParserTests.cs index f0c0733e2e6..2cc81c1c612 100644 --- a/src/HotChocolate/Core/test/Types.Tests/Types/InputParserTests.cs +++ b/src/HotChocolate/Core/test/Types.Tests/Types/InputParserTests.cs @@ -647,7 +647,11 @@ public async Task Integration_CodeFirst_InputObjectNoDefaultValue_NoRuntimeTypeD private class ResolverArgumentsAccessor { +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif internal SortedDictionary?> Arguments { get; } = new(); internal string? ResolveWith(IDictionary args) diff --git a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/AsyncAutoResetEvent.cs b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/AsyncAutoResetEvent.cs index 02727d27391..7e8c7e9b07e 100644 --- a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/AsyncAutoResetEvent.cs +++ b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/AsyncAutoResetEvent.cs @@ -5,7 +5,11 @@ namespace HotChocolate.Fusion.Execution; internal sealed class AsyncAutoResetEvent : INotifyCompletion { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private Action? _continuation; private bool _isSignaled; diff --git a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/Clients/DefaultSourceSchemaClientScope.cs b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/Clients/DefaultSourceSchemaClientScope.cs index cd6991f9202..d2957df795f 100644 --- a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/Clients/DefaultSourceSchemaClientScope.cs +++ b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/Clients/DefaultSourceSchemaClientScope.cs @@ -8,7 +8,11 @@ namespace HotChocolate.Fusion.Execution.Clients; public sealed class DefaultSourceSchemaClientScope : ISourceSchemaClientScope { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly ConcurrentDictionary<(string Name, OperationType Type), ISourceSchemaClient> _clients = []; private readonly IHttpClientFactory _httpClientFactory; private readonly SourceSchemaClientConfigurations _configurations; diff --git a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/OperationPlanContext.cs b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/OperationPlanContext.cs index ba02f1eeb11..c3e42a2a891 100644 --- a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/OperationPlanContext.cs +++ b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/OperationPlanContext.cs @@ -535,7 +535,11 @@ private void DisposeNodeState() private sealed class NodeCompletionSet(int bitsetWordCount) : IDisposable { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private ExecutionNode[] _dependents = []; private ulong[]? _seenDependents; private int _count; diff --git a/src/HotChocolate/Raven/src/Data/Pagination/RavenPagingContainer.cs b/src/HotChocolate/Raven/src/Data/Pagination/RavenPagingContainer.cs index 209b2f18369..51bd62a7be3 100644 --- a/src/HotChocolate/Raven/src/Data/Pagination/RavenPagingContainer.cs +++ b/src/HotChocolate/Raven/src/Data/Pagination/RavenPagingContainer.cs @@ -121,7 +121,11 @@ public RavenPagingContainer Take(int take) private sealed class TaskHolder { +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif private Task? _task; private readonly Func> _factory; diff --git a/src/Mocha/src/Mocha.Transport.InMemory/Topology/InMemoryMessagingTopology.cs b/src/Mocha/src/Mocha.Transport.InMemory/Topology/InMemoryMessagingTopology.cs index fe3733c1c14..942fb31c7da 100644 --- a/src/Mocha/src/Mocha.Transport.InMemory/Topology/InMemoryMessagingTopology.cs +++ b/src/Mocha/src/Mocha.Transport.InMemory/Topology/InMemoryMessagingTopology.cs @@ -11,7 +11,11 @@ namespace Mocha.Transport.InMemory; public sealed class InMemoryMessagingTopology(InMemoryMessagingTransport transport, Uri baseAddress) : MessagingTopology(transport, baseAddress) { +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif private readonly List _topics = []; private readonly List _queues = []; private readonly List _bindings = []; diff --git a/src/Mocha/src/Mocha.Transport.Postgres/Topology/PostgresMessagingTopology.cs b/src/Mocha/src/Mocha.Transport.Postgres/Topology/PostgresMessagingTopology.cs index 58a3a777ca2..ce3387dd233 100644 --- a/src/Mocha/src/Mocha.Transport.Postgres/Topology/PostgresMessagingTopology.cs +++ b/src/Mocha/src/Mocha.Transport.Postgres/Topology/PostgresMessagingTopology.cs @@ -11,7 +11,11 @@ public sealed class PostgresMessagingTopology( bool autoProvision) : MessagingTopology(transport, address) { +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif private readonly List _topics = []; private readonly List _queues = []; private readonly List _subscriptions = []; diff --git a/src/Mocha/src/Mocha.Transport.RabbitMQ/Topology/RabbitMQMessagingTopology.cs b/src/Mocha/src/Mocha.Transport.RabbitMQ/Topology/RabbitMQMessagingTopology.cs index 630ae3d3bcb..6b369f2a2ca 100644 --- a/src/Mocha/src/Mocha.Transport.RabbitMQ/Topology/RabbitMQMessagingTopology.cs +++ b/src/Mocha/src/Mocha.Transport.RabbitMQ/Topology/RabbitMQMessagingTopology.cs @@ -11,7 +11,11 @@ public sealed class RabbitMQMessagingTopology( bool autoProvision) : MessagingTopology(transport, baseAddress) { +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif private readonly List _exchanges = []; private readonly List _queues = []; private readonly List _bindings = []; diff --git a/src/Mocha/src/Mocha/Consumers/Batching/BatchCollector.cs b/src/Mocha/src/Mocha/Consumers/Batching/BatchCollector.cs index 3b44b714139..c5d9bcfe0c1 100644 --- a/src/Mocha/src/Mocha/Consumers/Batching/BatchCollector.cs +++ b/src/Mocha/src/Mocha/Consumers/Batching/BatchCollector.cs @@ -8,7 +8,11 @@ internal sealed class BatchCollector : IAsyncDisposable private readonly Func, ValueTask> _onBatchReady; private readonly int _maxBatchSize; +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly DelayedAction _delay; private List> _buffer = []; private bool _disposed; diff --git a/src/Mocha/src/Mocha/Endpoints/EndpointRouter.cs b/src/Mocha/src/Mocha/Endpoints/EndpointRouter.cs index 89d9de3f5cf..e2e715f3bb2 100644 --- a/src/Mocha/src/Mocha/Endpoints/EndpointRouter.cs +++ b/src/Mocha/src/Mocha/Endpoints/EndpointRouter.cs @@ -8,7 +8,11 @@ namespace Mocha; /// public sealed class EndpointRouter : IEndpointRouter { +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif // Primary storage - endpoint -> tracked addresses private readonly Dictionary> _endpoints = []; diff --git a/src/Mocha/src/Mocha/MessageTypes/IMessageRouter.cs b/src/Mocha/src/Mocha/MessageTypes/IMessageRouter.cs index a8647df5f44..e4b4c5745a4 100644 --- a/src/Mocha/src/Mocha/MessageTypes/IMessageRouter.cs +++ b/src/Mocha/src/Mocha/MessageTypes/IMessageRouter.cs @@ -77,7 +77,11 @@ DispatchEndpoint GetEndpoint( /// public sealed class MessageRouter : IMessageRouter { +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif // Inbound storage and indexes private readonly Dictionary _inboundRoutes = []; diff --git a/src/Mocha/src/Mocha/Serialization/MessageTypeRegistry.cs b/src/Mocha/src/Mocha/Serialization/MessageTypeRegistry.cs index 687baa86f9a..922b653769e 100644 --- a/src/Mocha/src/Mocha/Serialization/MessageTypeRegistry.cs +++ b/src/Mocha/src/Mocha/Serialization/MessageTypeRegistry.cs @@ -10,7 +10,11 @@ public sealed class MessageTypeRegistry(IMessageSerializerRegistry serializerReg { public IMessageSerializerRegistry Serializers => serializerRegistry; +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif private readonly HashSet _messageTypes = []; private readonly Dictionary _messageTypesByType = []; private readonly Dictionary _messageTypesByIdentity = []; diff --git a/src/Mocha/test/Mocha.EntityFrameworkCore.Postgres.Tests/Helpers/ResilientOutboxSignal.cs b/src/Mocha/test/Mocha.EntityFrameworkCore.Postgres.Tests/Helpers/ResilientOutboxSignal.cs index 88badc8ea6c..63ae700df2f 100644 --- a/src/Mocha/test/Mocha.EntityFrameworkCore.Postgres.Tests/Helpers/ResilientOutboxSignal.cs +++ b/src/Mocha/test/Mocha.EntityFrameworkCore.Postgres.Tests/Helpers/ResilientOutboxSignal.cs @@ -18,7 +18,11 @@ namespace Mocha.EntityFrameworkCore.Postgres.Tests.Helpers; /// internal sealed class ResilientOutboxSignal : IOutboxSignal { +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif private TaskCompletionSource _tcs; public ResilientOutboxSignal() diff --git a/src/Mocha/test/Mocha.Tests/Consumers/Batching/BatchCollectorTests.cs b/src/Mocha/test/Mocha.Tests/Consumers/Batching/BatchCollectorTests.cs index a6c3cf51d39..f99ba324f5a 100644 --- a/src/Mocha/test/Mocha.Tests/Consumers/Batching/BatchCollectorTests.cs +++ b/src/Mocha/test/Mocha.Tests/Consumers/Batching/BatchCollectorTests.cs @@ -270,7 +270,11 @@ private sealed class StubConsumeContext(TestEvent message, string? messageId = n private sealed class BatchRecorder { private readonly SemaphoreSlim _semaphore = new(0); +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly List> _batches = []; public IReadOnlyList> Batches diff --git a/src/Mocha/test/Mocha.Tests/Threading/ChannelProcessorTests.cs b/src/Mocha/test/Mocha.Tests/Threading/ChannelProcessorTests.cs index 445b08434cb..c6796705f8b 100644 --- a/src/Mocha/test/Mocha.Tests/Threading/ChannelProcessorTests.cs +++ b/src/Mocha/test/Mocha.Tests/Threading/ChannelProcessorTests.cs @@ -198,7 +198,11 @@ private static async IAsyncEnumerable ToAsyncEnumerable( /// private sealed class InvocationTracker { +#if NET9_0_OR_GREATER + private readonly Lock _lock = new(); +#else private readonly object _lock = new(); +#endif private readonly List _items = []; private TaskCompletionSource? _waiter; private int _expected; diff --git a/src/Nitro/CommandLine/src/CommandLine/Options/Optional.cs b/src/Nitro/CommandLine/src/CommandLine/Options/Optional.cs index 73fcdfdd9a0..5acfab8a868 100644 --- a/src/Nitro/CommandLine/src/CommandLine/Options/Optional.cs +++ b/src/Nitro/CommandLine/src/CommandLine/Options/Optional.cs @@ -2,7 +2,11 @@ namespace ChilliCream.Nitro.CommandLine.Options; internal static class Opt where TOption : new() { +#if NET9_0_OR_GREATER + private static readonly Lock s_lock = new(); +#else private static readonly object s_lock = new(); +#endif private static TOption? s_instance; diff --git a/src/StrawberryShake/Client/src/Core/EntityStore.Observable.cs b/src/StrawberryShake/Client/src/Core/EntityStore.Observable.cs index e5c7f5860a3..26bc49bddf1 100644 --- a/src/StrawberryShake/Client/src/Core/EntityStore.Observable.cs +++ b/src/StrawberryShake/Client/src/Core/EntityStore.Observable.cs @@ -48,7 +48,11 @@ private async Task ProcessEntityUpdates() private sealed class EntityUpdateObservable : IObservable { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private ImmutableList> _observers = []; public IDisposable Subscribe(IObserver observer) diff --git a/src/StrawberryShake/Client/src/Core/EntityStore.cs b/src/StrawberryShake/Client/src/Core/EntityStore.cs index c0e2b049923..12feda9d21b 100644 --- a/src/StrawberryShake/Client/src/Core/EntityStore.cs +++ b/src/StrawberryShake/Client/src/Core/EntityStore.cs @@ -7,7 +7,11 @@ namespace StrawberryShake; /// public sealed partial class EntityStore : IEntityStore { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private readonly CancellationTokenSource _cts = new(); private readonly Channel _updates = Channel.CreateUnbounded(); private readonly EntityUpdateObservable _entityUpdateObservable = new(); diff --git a/src/StrawberryShake/Client/src/Core/ObserverSession.cs b/src/StrawberryShake/Client/src/Core/ObserverSession.cs index 60ff825b2a0..e81780afd4b 100644 --- a/src/StrawberryShake/Client/src/Core/ObserverSession.cs +++ b/src/StrawberryShake/Client/src/Core/ObserverSession.cs @@ -2,7 +2,11 @@ namespace StrawberryShake; internal class ObserverSession : IDisposable { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private IDisposable? _storeSession; private bool _disposed; diff --git a/src/StrawberryShake/Client/src/Core/OperationStore.Observable.cs b/src/StrawberryShake/Client/src/Core/OperationStore.Observable.cs index 77f51ca51da..7afb4e2a078 100644 --- a/src/StrawberryShake/Client/src/Core/OperationStore.Observable.cs +++ b/src/StrawberryShake/Client/src/Core/OperationStore.Observable.cs @@ -46,7 +46,11 @@ private sealed class OperationStoreObservable : IObservable , IDisposable { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private ImmutableList _sessions = []; public void Next(OperationUpdate operationUpdate) diff --git a/src/StrawberryShake/Client/src/Core/StoredOperation.cs b/src/StrawberryShake/Client/src/Core/StoredOperation.cs index 51ddd13d77c..ad47e04c38b 100644 --- a/src/StrawberryShake/Client/src/Core/StoredOperation.cs +++ b/src/StrawberryShake/Client/src/Core/StoredOperation.cs @@ -7,7 +7,11 @@ internal class StoredOperation , IObservable> where T : class { +#if NET9_0_OR_GREATER + private readonly Lock _sync = new(); +#else private readonly object _sync = new(); +#endif private ImmutableList _subscriptions = []; private bool _disposed; private IOperationResult? _lastResult;