Метод reCalc требует доступа к глобальной константе MAX_DATA< /code>, но я не могу получить к нему доступ внутри замыкания, переданного в ParallelMap. Я получаю сообщение об ошибке «Неопределенная константа MAX_DATA».
Вот упрощенная версия моего кода:
Код: Выделить всё
$pool = new DefaultPool(self::THREAD_COUNT);
$results = wait(parallelMap($data, function ($point) {
return $this->reCalc($point); // some time-intensive task
}, $pool));
Код: Выделить всё
$max = MAX_DATA;
$pool = new DefaultPool(self::THREAD_COUNT);
$results = wait(parallelMap($data, function ($point) use ($max) {
if (!defined('MAX_DATA')) define('MAX_DATA', $max);
return $this->reCalc($point); // some time-intensive task
}, $pool));
Подробнее здесь: https://stackoverflow.com/questions/790 ... map-in-php
Мобильная версия