Repository navigation
Comparing changes
Open a pull request
base repository: ruby-concurrency/concurrent-ruby
base: v1.3.6
head repository: ruby-concurrency/concurrent-ruby
compare: v1.3.7
- 14 commits
- 18 files changed
- 4 contributors
Commits on Dec 13, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 1df567d - Browse repository at this point
Copy the full SHA 1df567dView commit details -
Run the docs workflow when pushing a tag
* The run when pushing a commit bumping the concurrent-ruby version fails as the workflow relies on the tag to exist, but the tag is created later in the release process. So just re-run this workflow automatically when the tag is pushed.
Configuration menu - View commit details
-
Copy full SHA for 543ef62 - Browse repository at this point
Copy the full SHA 543ef62View commit details -
Configuration menu - View commit details
-
Copy full SHA for 129cf00 - Browse repository at this point
Copy the full SHA 129cf00View commit details
Commits on Jan 11, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 30dc89e - Browse repository at this point
Copy the full SHA 30dc89eView commit details
Commits on Apr 6, 2026
-
Bump actions/deploy-pages from 4 to 5
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5. - [Release notes](https://github.com/actions/deploy-pages/releases) - [Commits](actions/deploy-pages@v4...v5) --- updated-dependencies: - dependency-name: actions/deploy-pages dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Configuration menu - View commit details
-
Copy full SHA for 9b2dbf7 - Browse repository at this point
Copy the full SHA 9b2dbf7View commit details
Commits on May 6, 2026
-
Bump actions/upload-pages-artifact from 4 to 5
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](actions/upload-pages-artifact@v4...v5) --- updated-dependencies: - dependency-name: actions/upload-pages-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Configuration menu - View commit details
-
Copy full SHA for 7a1b789 - Browse repository at this point
Copy the full SHA 7a1b789View commit details
Commits on Jun 5, 2026
-
Co-authored-by: Joshua Young <djry1999@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for df8706d - Browse repository at this point
Copy the full SHA df8706dView commit details
Commits on Jun 16, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 1974b47 - Browse repository at this point
Copy the full SHA 1974b47View commit details -
Fix
ReadWriteLockwrong-thread write release and stray read release`release_write_lock` did not verify ownership, so any thread with a reference to the lock could clear the `RUNNING_WRITER` bit while the original writer was still inside its critical section. A second writer could then acquire and run concurrently, breaking write exclusivity. `release_read_lock` decremented `@Counter` unconditionally. On a fresh lock the counter dropped to -1, after which `max_readers?` saw `-1 & MAX_READERS == MAX_READERS` and blocked all subsequent acquires with `ResourceLimitError`. Track the write owner in an `AtomicReference` and raise `IllegalOperationError` from `release_write_lock` when the calling thread does not hold it, covering both the wrong-thread and never-held cases. Raise the same error from `release_read_lock` when no read lock is currently held, matching how `ReentrantReadWriteLock` already detects this via its per-thread `@HeldCount`.
Configuration menu - View commit details
-
Copy full SHA for 3fd4932 - Browse repository at this point
Copy the full SHA 3fd4932View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2825cfa - Browse repository at this point
Copy the full SHA 2825cfaView commit details -
Fix
AtomicReference#updatelivelock when stored value isFloat::NANThe numeric `compare_and_set` wrapper checks `old == old_value` before delegating to `_compare_and_set`. With `Float::NAN` that check is always false (`NaN != NaN`), so `#update` retries indefinitely. Handle expected NaN explicitly so `#update` can terminate.
Configuration menu - View commit details
-
Copy full SHA for 6e37e06 - Browse repository at this point
Copy the full SHA 6e37e06View commit details -
Fix
ReentrantReadWriteLockread hold overflow into write-lock bitThe per-thread `@HeldCount` packs the read hold count into the low 15 bits and uses bit 15 as `WRITE_LOCK_HELD`. The reentrant paths in `acquire_read_lock` and `try_read_lock` incremented `@HeldCount` without bounding the read portion, so after 32,768 reentrant read holds the count overflowed into `WRITE_LOCK_HELD`. A subsequent `try_write_lock` or `acquire_write_lock` would then take the "already hold a write lock" fast path and return true without setting `RUNNING_WRITER`, silently violating write exclusivity. Raise `ResourceLimitError` when the local read count would overflow, matching how the cold path handles global reader exhaustion.
Configuration menu - View commit details
-
Copy full SHA for 7e4d711 - Browse repository at this point
Copy the full SHA 7e4d711View commit details -
Fix AtomicReference#update livelock when stored value is Float::NAN o…
…n JRuby and TruffleRuby
Configuration menu - View commit details
-
Copy full SHA for d91ca94 - Browse repository at this point
Copy the full SHA d91ca94View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4c8fc28 - Browse repository at this point
Copy the full SHA 4c8fc28View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v1.3.6...v1.3.7