Амаль
чтобы небыло дублей
foreach ($arResult["ITEMS"] as $key => $value) {
unset($arResult["ITEMS"][$key]);
$arResult["ITEMS"][$value["CODE"]] = $value;
}
Евгений Семашко
Да, уже мне гораздо больше нравится.
Евгений Семашко
Вопрос по unset
Alexander
глянь повыше
Alexander
в методе ран идет последующий инклуд
Alexander
https://github.com/f3ath/forkrunner/blob/master/src/ForkRunner.php#L39
Alexander
вот здесь
Alexander
я понять не могу причину
типа параллельность вычислений достигается?
Alexander
да чет сомнительно... один фиг идет выполнение
Alexander
в общем причина точно есть, но понять я ее не могу )
Евгений Семашко
Вопрос по unset
только в foreach будет корректно работать такая конструкция, верно?
Alexander
хотя кажется понял
https://github.com/f3ath/forkrunner/blob/master/src/ForkRunner.php#L30
вот тут оно подыхает и, соответственно, результат нигде не сохраняется
Евгений Семашко
я когда-то сталкивался с проблемой того, что внутри for или while некорректно отрабатывает unset и это было связано с проблемами указателей
я попробую воспроизвести
Alexander
а какой кейс-то? может тупо array_shift поможет?
Alexander
http://php.net/manual/ru/function.die.php
Alexander
да нет же
в реквайре идет хитровыебанное формирование массива результатов
Alexander
там результирующий файл получается вида
<?php
$result[$pid] = $childProccessResult;
$result[$child2] = $childProcessResult
Alexander
он его инклюдит и получает результат со всех дочерних процессов в итоге
Alexander
да похоже что только так и надо работать )
сейчас прогнал на тесте такой код
$children = [];
$result = [];
for ($i = 0; $i < 10; $i++) {
$pid = pcntl_fork();
switch ($pid) {
case -1:
throw new Exception("HUI");
case 0:
$result = getmypid();
break;
default:
$children[] = $pid;
}
}
foreach ($children as $child) {
pcntl_waitpid($child, $status);
}
$this->assertCount(10, $result);
и ахуел )
Alexander
то есть куда-то сложить результат и дергать его
invariance
чо это
invariance
??????
Alexander
это
мультипоточное программирование на похапе
Alexander
с конкуренцией и шалавами
Alexander
в смысле мусорными файлами
Alexander
посмотри вон там выше пакет коняшкин
Alexander
но вот хотелось бы какого-то более элегантного решения, чем сирануть в файл
Alex
Мультипоточность на пыхе? Кто знает номер психиатрии?
Alexander
Alex
Это страх и ненависть
invariance
да
invariance
но это не многопоточность
invariance
а многопроцессность
invariance
параллельно выполняемые форки процессов
invariance
а многопоточность в контексте одного процесса может работать
invariance
хуле ты умничаешь, если нихуя не знаешь?
invariance
мне правда интересно
Виктор
Вьеби ему уже, ну че он внатуре
Alexander
ну погодите, форк процесса - это же создание дочернего процесса
Alexander
хуячишь 10 форков - получаешь 10 дочек
Alexander
или я чего не понимаю?
invariance
все верно
Alexander
то есть по сути поток, нет?
invariance
смотря что ты под потоком подразумеваешь
invariance
на деле - ты создаешь 10 процессов
invariance
это не многопоточность
invariance
рекомендую погуглить про различия
invariance
Где я умничаю?
Где я нихуя не знаю?
Alexander
а, ну да, потоки делят общую память
invariance
Лулс
invariance
Ничоси пыха жесткая
invariance
А это вообще используется?
invariance
нельзя реплаить несколько мессаг, блять
invariance
нихуя не знаешь
invariance
а потом умничаешь
invariance
нет, лол
invariance
процессы, карл
invariance
шта
Виктор
Да, я чет тоже не догнал
Виктор
Продолжайте срач, ну куда вы посоны
invariance
эм
Виктор
Я проебал начало, расскажи каким этом хуем сюда
invariance
прост
Виктор
Говорили про форки, многопоточность и все такое модное, у нас же конечно "горлышком бутылки" никогда база не бывает, у нас вычисления все тормозят, и тут про int|integer
Виктор
чет я не догнал
Виктор
а, окей
(;¬_¬)
господа, переводим тему в менее резкое русло
(;¬_¬)
а то как гопники у гаражей
Виктор
php - язык молодых и дерзкий, ну че ты
Виктор
а вообще, пока идет срачик, не постесняюсь снова спросить сообщество, кто заводил satis, ну?
invariance
причем тут pthreads, если он разрабатывается другими людьми?
invariance
а нахуй тогда говорить?)
invariance
если не знаешь
🐴
Alexander
Alexander
(;¬_¬)
я предупреждал
invariance
где я пиздел?
(;¬_¬)