
Евгений
28.09.2017
18:48:56
и да, кто-нибудь использовал .net core?

Аmal
28.09.2017
18:49:06

Aleksandr
28.09.2017
18:49:18
@f3ath Коняш, а расскажи зачем ты тут делал сохранение в файл и после этого инклюдил его, почему просто было не выполнить колбэк и вернуть результат?

Аmal
28.09.2017
18:49:20
почитайте особенности работы версий php

Google

Like
28.09.2017
18:49:35

Aleksandr
28.09.2017
18:49:36
вот тут

Евгений
28.09.2017
18:49:48
А у кого-нибудь есть проблемы со спиной от программирования?

Like
28.09.2017
18:50:47
Блин, чота я с этим говнокодом совсем запутался
Нет по идеи, не нужна ссылка

Евгений
28.09.2017
18:50:51

Like
28.09.2017
18:50:58
Да я запутался пиздец

Аmal
28.09.2017
18:51:06

Like
28.09.2017
18:51:13
Меня тело foreach'a слишком путает

Евгений
28.09.2017
18:51:25
тот разраб красава, да

Аmal
28.09.2017
18:51:48
чтобы небыло дублей
foreach ($arResult["ITEMS"] as $key => $value) {
unset($arResult["ITEMS"][$key]);
$arResult["ITEMS"][$value["CODE"]] = $value;
}

Евгений
28.09.2017
18:52:35
Да, уже мне гораздо больше нравится.

Google

Евгений
28.09.2017
18:52:39
Вопрос по unset

Like
28.09.2017
18:52:59

Aleksandr
28.09.2017
18:53:57
глянь повыше
в методе ран идет последующий инклуд
https://github.com/f3ath/forkrunner/blob/master/src/ForkRunner.php#L39
вот здесь

Like
28.09.2017
18:54:29
Ага, увидел
Там в кейсе

Aleksandr
28.09.2017
18:55:03
я понять не могу причину
типа параллельность вычислений достигается?

Like
28.09.2017
18:55:35
Хм, возможно

Aleksandr
28.09.2017
18:56:04
да чет сомнительно... один фиг идет выполнение

Like
28.09.2017
18:56:30
Сигнатура unlink требует путь к файлу, хм
Не понимаю тоже

Aleksandr
28.09.2017
18:56:37
в общем причина точно есть, но понять я ее не могу )

Like
28.09.2017
18:56:39
Мож забыл удалить
Проверял, что с файлом ничего не произошло, кто его знает ?

Евгений
28.09.2017
18:57:04
Вопрос по unset
только в foreach будет корректно работать такая конструкция, верно?

Like
28.09.2017
18:57:14
unset?
unset удаляет переменную

Google

Aleksandr
28.09.2017
18:59:19
хотя кажется понял
https://github.com/f3ath/forkrunner/blob/master/src/ForkRunner.php#L30
вот тут оно подыхает и, соответственно, результат нигде не сохраняется

Евгений
28.09.2017
18:59:52
я когда-то сталкивался с проблемой того, что внутри for или while некорректно отрабатывает unset и это было связано с проблемами указателей
я попробую воспроизвести

Like
28.09.2017
19:00:11
Какие указатели?

Aleksandr
28.09.2017
19:00:49
а какой кейс-то? может тупо array_shift поможет?
http://php.net/manual/ru/function.die.php

Like
28.09.2017
19:01:31
В любом случае require там лишний, ибо он используется ниже только с unlink, у которого сигнатура требует string для первого аргумента
> exit — Выводит сообщение и прекращает выполнение текущего скрипта
Не понимаю "скрипта"
Но вспомнил var_dumper от симфони

Aleksandr
28.09.2017
19:02:21
да нет же
в реквайре идет хитровыебанное формирование массива результатов

Like
28.09.2017
19:02:47

Aleksandr
28.09.2017
19:03:11
там результирующий файл получается вида
<?php
$result[$pid] = $childProccessResult;
$result[$child2] = $childProcessResult

Aleksandr
28.09.2017
19:03:44
он его инклюдит и получает результат со всех дочерних процессов в итоге

Like
28.09.2017
19:04:30
@f3ath ты жесткий ?

Aleksandr
28.09.2017
19:07:04
да похоже что только так и надо работать )
сейчас прогнал на тесте такой код
$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);
и ахуел )
то есть куда-то сложить результат и дергать его

F01134H
28.09.2017
19:10:34
чо это
??????

Aleksandr
28.09.2017
19:11:23
это
мультипоточное программирование на похапе
с конкуренцией и шалавами

Google

Aleksandr
28.09.2017
19:11:38
в смысле мусорными файлами
посмотри вон там выше пакет коняшкин
но вот хотелось бы какого-то более элегантного решения, чем сирануть в файл

Like
28.09.2017
19:13:33
Senpai

Alex
28.09.2017
19:14:07
Мультипоточность на пыхе? Кто знает номер психиатрии?

Like
28.09.2017
19:14:33
Там вся суть в pcntl_fork, pcntl_waitpid

Aleksandr
28.09.2017
19:14:51

Alex
28.09.2017
19:15:04
Это страх и ненависть

Admin
ERROR: S client not available

Like
28.09.2017
19:15:26
Ничоси пыха жесткая
А это вообще используется?

F01134H
28.09.2017
19:15:53
да
но это не многопоточность
а многопроцессность

Like
28.09.2017
19:16:19
Хех

F01134H
28.09.2017
19:16:28
параллельно выполняемые форки процессов
а многопоточность в контексте одного процесса может работать

Like
28.09.2017
19:16:58
Да шо ты говоришь

F01134H
28.09.2017
19:17:30
хуле ты умничаешь, если нихуя не знаешь?

Google

F01134H
28.09.2017
19:17:37
мне правда интересно

Like
28.09.2017
19:17:41
Чо бля?
Где я умничаю?
Где я нихуя не знаю?
Мне правда интересно

Victor
28.09.2017
19:19:12
Вьеби ему уже, ну че он внатуре

Aleksandr
28.09.2017
19:19:24
ну погодите, форк процесса - это же создание дочернего процесса
хуячишь 10 форков - получаешь 10 дочек
или я чего не понимаю?

F01134H
28.09.2017
19:19:47
все верно

Aleksandr
28.09.2017
19:19:54
то есть по сути поток, нет?

Like
28.09.2017
19:19:59
На мои два вопроса отвечай

F01134H
28.09.2017
19:20:05
смотря что ты под потоком подразумеваешь
на деле - ты создаешь 10 процессов
это не многопоточность
рекомендую погуглить про различия

Like
28.09.2017
19:20:59
Ладно, не буду тебя оскорблять, жалко

F01134H
28.09.2017
19:21:30
Где я умничаю?
Где я нихуя не знаю?

Aleksandr
28.09.2017
19:21:41
а, ну да, потоки делят общую память

F01134H
28.09.2017
19:21:42
Лулс
Ничоси пыха жесткая