diff options
Diffstat (limited to 'vendor/open-telemetry/context/fiber')
-rw-r--r-- | vendor/open-telemetry/context/fiber/initialize_fiber_handler.php | 20 | ||||
-rw-r--r-- | vendor/open-telemetry/context/fiber/zend_observer_fiber.h | 9 |
2 files changed, 29 insertions, 0 deletions
diff --git a/vendor/open-telemetry/context/fiber/initialize_fiber_handler.php b/vendor/open-telemetry/context/fiber/initialize_fiber_handler.php new file mode 100644 index 000000000..b9c706395 --- /dev/null +++ b/vendor/open-telemetry/context/fiber/initialize_fiber_handler.php @@ -0,0 +1,20 @@ +<?php + +/** @noinspection PhpElementIsNotAvailableInCurrentPhpVersionInspection */ +/** @phan-file-suppress PhanUndeclaredClassReference */ + +declare(strict_types=1); + +namespace OpenTelemetry\Context; + +use Fiber; + +if (!class_exists(Fiber::class)) { + return; +} + +if (ZendObserverFiber::isEnabled() && ZendObserverFiber::init()) { + // ffi fiber support enabled +} else { + Context::setStorage(new FiberBoundContextStorage(Context::storage())); +} diff --git a/vendor/open-telemetry/context/fiber/zend_observer_fiber.h b/vendor/open-telemetry/context/fiber/zend_observer_fiber.h new file mode 100644 index 000000000..6a8e4e98d --- /dev/null +++ b/vendor/open-telemetry/context/fiber/zend_observer_fiber.h @@ -0,0 +1,9 @@ +#define FFI_SCOPE "OTEL_ZEND_OBSERVER_FIBER" + +typedef void (*zend_observer_fiber_init_handler)(intptr_t initializing); +typedef void (*zend_observer_fiber_switch_handler)(intptr_t from, intptr_t to); +typedef void (*zend_observer_fiber_destroy_handler)(intptr_t destroying); + +void zend_observer_fiber_init_register(zend_observer_fiber_init_handler handler); +void zend_observer_fiber_switch_register(zend_observer_fiber_switch_handler handler); +void zend_observer_fiber_destroy_register(zend_observer_fiber_destroy_handler handler); |