Releases: pmmp/ext-pmmpthread
Releases · pmmp/ext-pmmpthread
6.1.1
6.1.0
Changes since 6.0.x
New features
ext-sockets
support can now be manually disabled by passing--without-pmmpthread-sockets
toconfigure
. Previously, socket support was decided based on whetherext-sockets
was present or not.- Added
Thread::getRunningCount()
- returns the number of threads started by pmmpthread (does not include the main thread)
Fixes
- Fixed OPcache protected memory violation (and probable crash) when setting
ThreadSafe
properties in weak mode (causing them to be coerced) - Fixed race condition on monitor states causing sporadic test failures and probably random issues in production
- Reduce likelihood of known race conditions with
map_ptr
occurring (these are difficult to fix but can be mitigated to some extent in the meantime) - Fixed race condition
Worker::isTerminated()
sometimes reportingfalse
afterWorker::collect()
retrieved a task whoseisTerminated()
was set totrue
(this caused some flaky behaviour in the test suite)
Other changes
- Restructure CI workflows to make them easier to maintain
- Use
opcache.protect_memory=1
on CI to detect OPcache protected memory violations - Disable
fail-fast
on Actions workflows
6.0.12
Changes since 6.0.11
Worker
now notifies itself when a task is ready for collection. This permits the use ofwait()
with acollect()
precondition inside asynchronized
block to wait for task completion (used in various tests).- Fixed support for 8.3 typed constants and static variable initializers.
6.0.11
6.0.10
6.0.9
Changes since 6.0.8
- Fixed crash and
UNKNOWN:0
when reading an undefined offset ofThreadSafeArray
ThreadSafeArray
'sArrayAccess
methods are now consistent with regular array-syntax operations. Previously, some errors such as non-thread-safe value errors were not generated by these functions.
6.0.8
6.0.7
Changes since 6.0.6
- Thread shutdown handlers are now called immediately when a thread's
run()
exits. Previously, this wouldn't happen until the parent thread calledjoin()
or stopped referencing the thread object. Thread::getCurrentThread()
now works properly inside shutdown handlers (#68).- Fixed potential global deadlock when inside a shutdown handler (#67).
6.0.6
Changes since 6.0.5
- Fixed compilation for PHP 8.3 as of php/php-src@1a0ef2c
- Improved error messages in exceptions thrown by
Thread::start()