Skip to content

Add support for System.Threading.Lock #2204

@JakenVeina

Description

@JakenVeina

Feature request

Please describe the feature.

Is there any interest in new operators for directly supporting System.Threading.Lock objects, where locks are used? E.G.

public static IObservable<T> Synchronize<T>(
    this    IObservable<T>  source,
            Lock            gate);

in addition to

public static IObservable<T> Synchronize<T>(
    this    IObservable<T>  source,
            object          gate);

Given that anyone wanting this operator, or similar ones, would have to implement it from scratch, rather than through composition of existing operators, that System.Threading.Lock is now considered a threading primitive, and that it would not produce any compatibility issues, it seems like a good candidate for support in the core library,

Which next library version (i.e., patch, minor or major)?

As a non-breaking new feature, this could be introduced in the next minor version.

What are the platform(s), environment(s) and related component version(s)?

System.Threading.Lock is available .NET 9+.

As I understand, System.Reactive does not currently produce target-specific artifacts above .NET 6? If so, build targeting config would need to be adjusted to add .NET 9+ artifacts.

How commonly is this feature needed (one project, several projects, company-wide, global)?

Currently, DynamicData is using a custom version of the Synchronize operator, internally, for .NET 9+ targets.

I'll be happy to provide a PR for this feature, if deemed appropriate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions