Skip to content

Releases: pmmp/ext-pmmpthread

6.1.0

02 Apr 13:37
c568efa
Compare
Choose a tag to compare

Changes since 6.0.x

New features

  • ext-sockets support can now be manually disabled by passing --without-pmmpthread-sockets to configure. Previously, socket support was decided based on whether ext-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 reporting false after Worker::collect() retrieved a task whose isTerminated() was set to true (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

24 Nov 12:14
c2209ac
Compare
Choose a tag to compare

Changes since 6.0.11

  • Worker now notifies itself when a task is ready for collection. This permits the use of wait() with a collect() precondition inside a synchronized block to wait for task completion (used in various tests).
  • Fixed support for 8.3 typed constants and static variable initializers.

6.0.11

21 Nov 17:33
11209a3
Compare
Choose a tag to compare

Changes since 6.0.10

  • ThreadSafeArray now performs significantly better when used as a channel/queue (tracking of start and end).
  • Rewritten and/or scrapped a bunch of examples to remove bad, outdated code and improve documentation.

6.0.10

24 Aug 16:54
90989d8
Compare
Choose a tag to compare

Changes since 6.0.9

  • Fixed use-after-free in copied closures containing static variables (#130)

6.0.9

22 Aug 12:02
98c4d80
Compare
Choose a tag to compare

Changes since 6.0.8

  • Fixed crash and UNKNOWN:0 when reading an undefined offset of ThreadSafeArray
  • ThreadSafeArray's ArrayAccess 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

14 Aug 20:02
ad79d7a
Compare
Choose a tag to compare

Changes since 6.0.7

  • Fixed usage of enum cases in class constants and property defaults causing segfaults.
  • Removed unused cast_object handler causing crashes on PHP 8.3.0beta2.

6.0.7

08 Aug 14:08
00f4b7a
Compare
Choose a tag to compare

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 called join() 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

25 Jul 17:47
4364caa
Compare
Choose a tag to compare

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()

4.2.2

25 Jul 17:45
2dbc7f3
Compare
Choose a tag to compare

Changes since 4.2.1

  • Improved error messages in exceptions thrown by Thread::start()
  • Fixed compiler warning in pthreads_prepare_immutable_class_dependencies()

6.0.5

20 Jul 14:34
023bba8
Compare
Choose a tag to compare

Changes since 6.0.4

  • Fixed objects not being able to be passed to another thread once their creator thread no longer references them.
  • Fixed crash when accessing nonexistent multi-dimensional offsets of ThreadSafeArray.