PATH:
opt
/
alt
/
tests
/
alt-php72-pecl-pthreads-zts_3.2.0-1.el8
/
tests
--TEST-- Test object comparison --DESCRIPTION-- Threaded object comparison was broken in pthreads v2, the handler was not implemented. In pthreads v3 we implement the handler, but not in the way Zend is expecting us too. To traverse (and reconstruct in most cases) the property store in order to perform a comparison is extremely inefficient. In addition, because of the way pthreads works, it might be useful to determine if two references from two different contexts are infact references to the same object from some other context. So pthreads v3 implements the comparison handler and returns true when two references are for the same Threaded object, this differs from normal object comparison which would return true if the property tables of two distinct objects are uniform. --FILE-- <?php class Test extends Thread { public function __construct(Threaded ... $args) { $this->args = $args; } public function run () { var_dump($this->args[0] == $this->args[1]); } } $a = new Threaded(); $b = new Threaded(); $test = new Test($a, $b); # bool(false) $test->start(); $test->join(); $test = new Test($a, $a); # bool(true) $test->start(); $test->join(); ?> --EXPECT-- bool(false) bool(true)
[+]
..
[-] magic-methods-isset-unset.phpt
[edit]
[-] traits-scope.inc
[edit]
[-] interface.phpt
[edit]
[-] oomethods.phpt
[edit]
[-] class-static-properties-order-dependencies.phpt
[edit]
[-] interfaces.phpt
[edit]
[-] lexical-vars.phpt
[edit]
[-] thorn-in-side.phpt
[edit]
[-] workers-no-collect.phpt
[edit]
[-] class-static-properties-2.phpt
[edit]
[-] workers-constant-copy.phpt
[edit]
[-] socket-getsockname-af-inet.phpt
[edit]
[-] resource-keeping.phpt
[edit]
[-] normalize-members.phpt
[edit]
[-] workers-no-join.phpt
[edit]
[-] socket-connect-error-unix.phpt
[edit]
[-] complex-statics-set-null.phpt
[edit]
[-] included-files.phpt
[edit]
[-] magic-methods-get-set.phpt
[edit]
[-] pthreads-inherit-none-class-constant.phpt
[edit]
[-] pools-default.phpt
[edit]
[-] immutable-threaded-members.phpt
[edit]
[-] closure-secondary-thread-copy.phpt
[edit]
[-] unset-defaults.phpt
[edit]
[-] nested-non-threaded-object-references.phpt
[edit]
[-] iterator-no-refs.phpt
[edit]
[-] socket-setoption.phpt
[edit]
[-] shutdown-handler.phpt
[edit]
[-] wait.phpt
[edit]
[-] socket-getsockname-af-unix.phpt
[edit]
[-] corrupted-resources.phpt
[edit]
[-] constant-ast-copy-missing-type.phpt
[edit]
[-] hacking-serials.phpt
[edit]
[-] null-member-crash.phpt
[edit]
[-] runtime-inheritance.phpt
[edit]
[-] socket-sentto-recvfrom-ipv6-udp.phpt
[edit]
[-] trait-aliases-reflection.phpt
[edit]
[-] ipv6_skipif.inc
[edit]
[-] trait-alias-bug.phpt
[edit]
[-] statics.phpt
[edit]
[-] workers-no-shutdown-before-start.phpt
[edit]
[-] synchronization.phpt
[edit]
[-] anon-unbound-double-inherited.phpt
[edit]
[-] static-scope-vars.phpt
[edit]
[-] selective-inheritance.phpt
[edit]
[-] constants.phpt
[edit]
[-] chunk.phpt
[edit]
[-] workers-no-start.phpt
[edit]
[-] closures-as-members-repeated-reallocation.phpt
[edit]
[-] new-class-after-thread-creation.phpt
[edit]
[-] socket-ipv6loop.phpt
[edit]
[-] includeme.inc
[edit]
[-] norefs.phpt
[edit]
[-] object-comparison.phpt
[edit]
[-] unprepared-entry-static-segfault.phpt
[edit]
[-] constant-array.phpt
[edit]
[-] socket-connect-error-win32.phpt
[edit]
[-] socket-select-unix.phpt
[edit]
[-] verify-overload.phpt
[edit]
[-] object-cast.phpt
[edit]
[-] foreign-private-members.phpt
[edit]
[-] statics-thorn-in-other-side.phpt
[edit]
[-] socket-ipv4loop.phpt
[edit]
[-] class-static-properties.phpt
[edit]
[-] closure-delayed-include.phpt
[edit]
[-] workers-ok-unstack.phpt
[edit]
[-] include_interface_constant.phpt
[edit]
[-] counting-members.phpt
[edit]
[-] inherit-non-closures.phpt
[edit]
[-] inherited-anon-class.phpt
[edit]
[-] waiting-timeouts.phpt
[edit]
[-] gone.phpt
[edit]
[-] static-resolution.phpt
[edit]
[-] anon-unbound-use-guards.phpt
[edit]
[-] unstack-running.phpt
[edit]
[-] crazy-refcounting-stuff.phpt
[edit]
[-] complex-statics.phpt
[edit]
[-] graceful-fatalities.phpt
[edit]
[-] socket-connect-params-af-inet.phpt
[edit]
[-] private-class-constant-fetching.phpt
[edit]
[-] display-startup-errors-output.phpt
[edit]
[-] global-constants.phpt
[edit]
[-] return-types.phpt
[edit]
[-] constant-ast-copy.phpt
[edit]
[-] functions.phpt
[edit]
[-] socket-unixloop.phpt
[edit]
[-] closures-as-members.phpt
[edit]
[-] staticmethods.phpt
[edit]
[-] exception-handler-options.phpt
[edit]
[-] inherited-anon-class-outside-context.phpt
[edit]
[-] legacy-ctor.phpt
[edit]
[-] volatile-arrays.phpt
[edit]
[-] recv-overload.phpt
[edit]
[-] socket-bind.phpt
[edit]
[-] socket-construct.phpt
[edit]
[-] trait-aliases.phpt
[edit]
[-] stateful-fatalities.phpt
[edit]
[-] socket-getpeername-af-unix.phpt
[edit]
[-] socket-read-type.phpt
[edit]
[-] volatile-nested.phpt
[edit]
[-] workers-default-collector.phpt
[edit]
[-] no-cloning.phpt
[edit]
[-] exception-handler-caught-nested.phpt
[edit]
[+]
assets
[-] socket-connect-params-af-unix.phpt
[edit]
[-] isset-unset.phpt
[edit]
[-] class-defaults.phpt
[edit]
[-] exception-handler-fail.phpt
[edit]
[-] doc-comments.phpt
[edit]
[-] explicit-cast-arrays.phpt
[edit]
[-] static-inheritance-unexpected-null.phpt
[edit]
[-] run-time-cache-corruption.phpt
[edit]
[-] anon-unbound-inherited.phpt
[edit]
[-] thread.phpt
[edit]
[-] traits-scope.phpt
[edit]
[-] child-to-parent-class-copying-helper.php
[edit]
[-] socket-select-win32.phpt
[edit]
[-] threaded_valid_tsrmls.phpt
[edit]
[-] class-static-properties-order-dependencies-inheritance.phpt
[edit]
[-] merge-non-threaded.phpt
[edit]
[-] exception-handler.phpt
[edit]
[-] isset-empty-compat.phpt
[edit]
[-] ini.phpt
[edit]
[-] anon-interceptors.phpt
[edit]
[-] binding.phpt
[edit]
[-] workers-no-unstack.phpt
[edit]
[-] exception-handler-caught-uncaught.phpt
[edit]
[-] socket-getpeername-af-inet.phpt
[edit]
[-] normal-reads.phpt
[edit]
[-] socket-sentto-recvfrom-ipv4-udp.phpt
[edit]
[-] child-to-parent-class-copying.phpt
[edit]
[-] threaded-extend-abstract.phpt
[edit]
[-] socket-getoption.phpt
[edit]
[-] workers-no-stack.phpt
[edit]
[-] shift-pop.phpt
[edit]
[-] pools.phpt
[edit]
[-] callstatic-etc.phpt
[edit]
[-] socket-sentto-recvfrom-unix.phpt
[edit]
[-] no-inheritance-anon-class.phpt
[edit]
[-] class-static-properties-double-inheritance.phpt
[edit]
[-] iterator-funcs.phpt
[edit]
[-] volatile-objects.phpt
[edit]
[-] merging-range.phpt
[edit]
[-] merging-members.phpt
[edit]
[-] runtime-inheritance-volatile.phpt
[edit]
[-] pthreads-inherit-none-class-constant-inherited.phpt
[edit]
[-] anon-bound-inherited.phpt
[edit]