Throw PlatformNotSupportedException for named Semaphore on Unix #2796

Merged
merged 1 commit into from Aug 14, 2015

Conversation

Projects
None yet
4 participants
@stephentoub
Member

stephentoub commented Aug 13, 2015

libcoreclr's synchronization primitives implementation currently supports names, but those names have process-wide rather than system-wide scope. This is very dangerous for most code that would want names, as they're typically used for cross-process synchronization, and as such the current behavior could lead to bad race conditions difficult to diagnose. Until a better solution is available, we will throw PlatformNotSupportedException when trying to create such named primitives.

Semaphore's code is in the corefx repo, so this commit both updates the semaphore implementation and updates the tests for all of the named primitives. A separate commit in coreclr will address the primitives implemented there. A few of the modified tests that are expected PlatformNotSupportedException are currently marked as [ActiveIssue], as they will fail until the coreclr changes are merged.

Throw PlatformNotSupportedException for named Semaphore on Unix
libcoreclr's synchronization primitives implementation currently supports names, but those names have process-wide rather than system-wide scope.  This is very dangerous for most code that would want names, as they're typically used for cross-process synchronization, and as such the current behavior could lead to bad race conditions difficult to diagnose.  Until a better solution is available, we will throw PlatformNotSupportedException when trying to create such named primitives.

Semaphore's code is in the corefx repo, so this commit both updates the semaphore implementation and updates the tests for all of the named primitives.  A separate commit in coreclr will address the primitives implemented there.  A few of the modified tests that are expected PlatformNotSupportedException are currently marked as [ActiveIssue], as they will fail until the coreclr changes are merged.
@stephentoub

This comment has been minimized.

Show comment
Hide comment
@stephentoub

stephentoub Aug 13, 2015

Member

Corresponding PR in coreclr: dotnet/coreclr#1387

Member

stephentoub commented Aug 13, 2015

Corresponding PR in coreclr: dotnet/coreclr#1387

@stephentoub

This comment has been minimized.

Show comment
Hide comment
@weshaggard

This comment has been minimized.

Show comment
Hide comment
@weshaggard

weshaggard Aug 14, 2015

Member

LGTM

Member

weshaggard commented Aug 14, 2015

LGTM

@stephentoub

This comment has been minimized.

Show comment
Hide comment
@stephentoub

stephentoub Aug 14, 2015

Member

Thanks, Wes.

Member

stephentoub commented Aug 14, 2015

Thanks, Wes.

stephentoub added a commit that referenced this pull request Aug 14, 2015

Merge pull request #2796 from stephentoub/threading_names
Throw PlatformNotSupportedException for named Semaphore on Unix

@stephentoub stephentoub merged commit 14ca655 into dotnet:master Aug 14, 2015

1 check passed

default Build finished. No test results found.
Details

@stephentoub stephentoub deleted the stephentoub:threading_names branch Aug 14, 2015

@karelz karelz modified the milestone: 1.0.0-rtm Dec 3, 2016

@JimBobSquarePants JimBobSquarePants referenced this pull request in SixLabors/ImageSharp.Web Oct 15, 2017

Merged

Lock identical requests to reduce processing overheads #7

4 of 4 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment