Skip to content

@remicollet remicollet released this Mar 4, 2021

  • Fix deadlocks when other apcu_* functions are used inside apcu_entry(). It should now be safe to use any functions inside the apcu_entry() callback.
  • Fix division by zero exception in apc.php.
  • Fix handling of references in PHP 8 if "default" serializer is used (which is not the default).
  • Fix string reuse handling if "default" serializer is used (which is not the default).
  • Check for failures when acquiring read locks to report problems earlier (write locks were already checked previously).
  • Adjust tests for current PHP 8.1 development branch.
  • Remove *_api.h headers. Use apc_cache.h instead of apc_cache_api.h etc.
Assets 2

@remicollet remicollet released this Oct 5, 2020

  • Fixed apcu_store() with integer keys (#388).
  • Made apc.use_request_time=0 the default (#391).
  • Made apcu compatible with PHP 8.0.
Assets 2

@nikic nikic released this Apr 1, 2020

  • Implement apcu_inc() and apcu_dec() using atomic operations. This means that these functions no longer have to acquire a write lock. These functions will now wraparound on overflow, instead of saturating to a floating point value.
  • Make table header in apc.php sticky.
  • Fix compile warnings related to mktemp() usage.
  • Fix compatibility with PHP 8.0.
  • Fix required number of arguments for apcu_store() returned by Reflection.
Assets 2

@remicollet remicollet released this Feb 8, 2019

  • Fixed compatibility with PHP 7.4 and PHP 8.0.
Assets 2

@nikic nikic released this Dec 16, 2018

  • Fix build on OS X.
Assets 2

@remicollet remicollet released this Dec 7, 2018

Bugfix release for PHP 7

  • Restore apc.serializer=php as the default, as the "default" serializer still/again has issues.
  • Fix possible issues in persistence of arrays with the "default" serializer.
  • Attempt to reduce shared memory fragmentation.
Assets 2

@remicollet remicollet released this Nov 21, 2018

Bugfix release for PHP 7

  • Fixed #347: Disable slam defense by default.
  • Fix potential issue with destruction of locks. This does not affect Linux, but might affect Windows and BSD.
  • Use mutex instead of rwlock for shared memory allocator (if pthreads mutex available).
  • Require only read-lock for apcu_cas(), by using atomic compare-and-swap.
Assets 2

@remicollet remicollet released this Nov 19, 2018

Bugfix release for PHP 7

  • Reimplement persistence logic using precise allocation rather than memory pools. This reduces
    memory usage of cache entries, especially for small values, and improves performance of persisting
    and unpersisting values.
  • Fixed #335: Stampede protection is broken.
  • Fixed #328: Segfault in apcu_key_info() if APCu is disabled.
  • Generally make the behavior of functions if APCu is disabled more consistent.
  • Fixed PHP bug #72980: Empty strings are now consistently allowed as cache keys.
  • Optimized apcu_key_info() and apcu_cache_info() by using interned strings.
  • Fix build against PHP master (PHP 7.4).
  • Many changes to internal C APIs.
Assets 2

@remicollet remicollet released this Jul 9, 2018

Bugfix release for PHP 7

  • #307: Fix 'Timout' sort option (apc.php).
  • #308: Keep search parameter on cache entry detail link (apc.php).
  • Fix --enable-apcu-clear-signal support.
  • Show entries with expired global TTL in APCuIterator.
  • Respect TTL when calculating APCuIterator totals.
  • The per-entry TTL now always takes precedence over the global TTL.
  • The global TTL is now always relative to the access time.
  • apcu_inc() and apcu_dec() no longer update hard-expired entries. Instead a new entry is created.
  • Added optional $ttl argument to apcu_inc() and apcu_dec(), used when creating a new entry.
  • PHP bug #76145: Fix use of APCu inside Serializer::(un)serialize().
  • #304: If apcu_cas() is used on a non-existing entry, don't insert it.
  • #295: Improve APCuIterator performance by using PCRE JIT and preallocating key strings.
  • Reduce the memory overhead of cache entries.
  • Prevent potential memory corruption in the cache slam defense implementation.
  • Ensure cache entry references are released on bailout during unserialization.
  • Make support for atomic operations a hard requirement for building APCu.
  • Check write-lock acquisition for failure, to help debugging deadlock situations.
  • Make sure apcu_inc/dec are atomic when working on a non-existing entry.
  • Many changes to internal C APIs.
Assets 2

@remicollet remicollet released this Mar 8, 2018

Bugfix release for PHP 7

  • fix #246 apcu_entry hangs
  • fix #259 deadlock in apcu_store
  • fix #281 undefined variable in apc.php
  • fix handling of fatal errors in apcu_entry
  • check string lengths when looking up keys
  • many internal C APIs changed
Assets 2