Skip to content

Releases: pmmp/ext-pmmpthread

5.2.3

05 Feb 19:16
08d6cda
Compare
Choose a tag to compare

Changes since 5.2.2

  • Fixed memory leaks of closures, sockets and strings assigned to ThreadedArray when using chunk(), pop() and shift() exclusively to remove items.

5.2.2

05 Feb 16:02
1861f89
Compare
Choose a tag to compare

Changes since 5.2.1

  • Allow strings to be directly copied between threads in some cases (#93). This change offers significant performance benefits to IPC-style use cases.

5.2.1

04 Feb 23:17
e2512d7
Compare
Choose a tag to compare

Changes since 5.2.0

  • Reduced memory usage of ThreadedBase objects by interning defined property name strings for the lifetime of the process.
  • Improved string key usage within ThreadedBase objects by allowing the direct referencing of permanent interned strings, such as those created by OPcache.
  • Fixed ThreadedArray::merge() not properly updating offsets that were overwritten during merge.

5.2.0

30 Jan 21:49
a3c1873
Compare
Choose a tag to compare

Changes since 5.1.4

  • User-defined Thread::join() overrides are now called when a Thread enters the default destructor, allowing busy threads to be interrupted without an extra method call.
  • Fixed UNKNOWN:0 being returned when reading an undefined property of a ThreadedBase.
  • Behaviour of reading undefined properties now more closely matches normal objects.
  • Behaviour of misusing static properties as dynamic now matches normal objects.

5.1.4

28 Jan 17:07
a5f785d
Compare
Choose a tag to compare

Changes since 5.1.3

  • Improved reliability of copied closures. Scope classes are now copied correctly, resolving a variety of segfault issues.

5.1.3

26 Jan 16:54
1c6734a
Compare
Choose a tag to compare

Changes since 5.1.2

  • Fixed zend_mm_heap corrupted errors after iterating on a ThreadedBase object from another thread.

4.2.1

26 Jan 16:53
b539ff4
Compare
Choose a tag to compare

Changes since 4.2.0

  • Fixed zend_mm_heap corrupted errors after iterating on a Threaded object from another thread

5.1.2

25 Jan 16:05
532b22c
Compare
Choose a tag to compare

Changes since 5.1.1

  • Fixed memory leaks when workers are never allowed to be idle (garbage not being collected from inside the worker thread)
  • Fixed random segfaults when calling gc_collect_cycles() while worker tasks were running (Worker not including the currently-running task in GC report).
  • Fixed compiler warnings in zend_error_at_noreturn() usages in PHP 8.1 and up.
  • Fixed some tests sometimes timing out under Valgrind (spin-waits on Worker::collect() causing thread starvation).

5.1.1

23 Jan 16:40
b582017
Compare
Choose a tag to compare

Changes since 5.1.0

  • Dereferencing an already-destroyed thread-safe object from any ThreadedBase property now throws ThreadedConnectionException instead of RuntimeException.
  • The behaviour of uninitialized properties on ThreadedBase objects now more correctly matches non-thread-safe objects.

5.1.0

22 Jan 01:10
138090f
Compare
Choose a tag to compare

Changes since 5.0.x

  • Automatically dereference all objects into owner caches on child thread exit. This makes transferring data from child thread/worker task to parent much less obnoxious, and occurrences of pthreads detected an attempt to connect to an object which has already been destroyed much less easy to run into. For details, see 4ddf79e.