@rudepython

Страница 142 из 1719
Zart
25.01.2017
09:13:01
ну так дизайн этой части особо и не трогали ибо в винде обратная совместимость не пустой звук, как в сраном линуксе, где блядь, бинарник от соседнего дистра может не завестись

мм... а чем они были на уровне ядра?
а ничем. первые tcp/ip стёки под винду вообще были сторонним софтом, а мс свой написала заметно позже

Google
Zart
25.01.2017
09:14:10
говна кусок

Dmitry
25.01.2017
09:14:20
кто помнит tcp под dos ? :D

Zart
25.01.2017
09:14:28
на уровне abi она там еще есть. на уровне апи - нет

Roman
25.01.2017
09:15:53
говна кусок
говна кусок - это то что в винде. вот некоторые вещи в ней сделаны правильно(в первую очередь, AIO), а вот некоторые - это адок-адок(типа идеи вмазаться в многопоточное программирование)

Zart
25.01.2017
09:16:18
адок оно для линупсоидов, не осиливших треды вменяемо

для меня до сих пор загадка как Инго заводил лям тредов

Roman
25.01.2017
09:16:51
адок оно для линупсоидов, не осиливших треды вменяемо
нене. вот у тебя кто-то из тредов попортил память. и пиздос. что делать?

Zart
25.01.2017
09:17:05
там размер стёка поди был неюзабелен от слова "совсем"

щито?

Roman
25.01.2017
09:17:36
в лучшем случае ты ёбнешься сразу. в худшем - словишь интересные фефекты в будущем

Zart
25.01.2017
09:17:44
что значит "попортил"?

Roman
25.01.2017
09:18:24
что значит "попортил"?
память общая. что мешает промахнуться и писать не туда?

Google
Roman
25.01.2017
09:19:39
да даже просто код в одном из тредов потек по памяти. чо делать, епта? )

Zart
25.01.2017
09:20:02
т.е. ты сейчас главное достоинство потоков - общая память - записал в недостатки?

я ж говорю, линупсоиды в треды не умеют не то что солярщики

Zart
25.01.2017
09:20:52
а ты это юзал на практике?

Zart
25.01.2017
09:21:00
в сях еще куда ни шло

в питоне это тупо не работает

либо через постоянную сериализацию туда-сюда

Roman
25.01.2017
09:22:13
т.е. ты сейчас главное достоинство потоков - общая память - записал в недостатки?
достоинство ценой хрупкости. это несколько проще, чем в ядре, но тот ещё адок.

Zart
25.01.2017
09:22:28
а позикс ipcs - невероятного говна кусок на практике

Roman
25.01.2017
09:22:45
в питоне это тупо не работает
ну, в питоне тебе и треды не помогут.

Zart
25.01.2017
09:22:59
почему не помогут? для i/o они отлично работают

для цпу-баунд да, анус

Roman
25.01.2017
09:25:15
либо через постоянную сериализацию туда-сюда
можно свой велосипед и пробросить в питон.

Zart
25.01.2017
09:25:35
а с тредами лисапедить ничо не надо, кроме локов

этот холивор можно бесконечно срать, бо удобные и неудобные вещи есть и там и там

Roman
25.01.2017
09:28:10
Zart
25.01.2017
09:28:19
знание истории предмета сильно помогает осознать логику происходящего

Alexey
25.01.2017
09:28:28
А пиздато я про телегу написал. Хоть какое-то оживление.

Google
Alexey
25.01.2017
09:28:40
Полезное при чём, масса отсылок в гугл прозвучала между репликами для меня например.

Roman
25.01.2017
09:29:23
знание истории предмета сильно помогает осознать логику происходящего
это да. меня в линуксе выбешивает всё что касается "почитать файл с диска".

Zart
25.01.2017
09:30:54
честный aio для файлов в линукс так и не завезли, в отличие от фри

Roman
25.01.2017
09:31:39
честный aio для файлов в линукс так и не завезли, в отличие от фри
то как сделано во freebsd - оно только для очень узких сценариев.

в идеале, хотелось бы передать в ядро вектор операций с аргументами и потом получать результаты.

Zart
25.01.2017
09:33:13
IOCP машет лапой

Roman
25.01.2017
09:33:17
типа [ (open, fname0, flags), (open fname1, flags) ]

etc

IOCP машет лапой
нет. соснёшь ты с open

Zart
25.01.2017
09:36:49
открытие файла тяжело сделать асинхронным насколько я помню

Zart
25.01.2017
09:37:24
проверки ацл и т.п. генерят дополнительное i/o ж

но я в эти дебри лезть не хочу, пусть этим ядрёные погромисты страдают

Anatoly
25.01.2017
10:01:35
память общая. что мешает промахнуться и писать не туда?
ничто не мешает, в чём проблема только с этим? В плюсах тоже можно промахнуться и не тот буффер почитать

Roman
25.01.2017
11:37:56
ничто не мешает, в чём проблема только с этим? В плюсах тоже можно промахнуться и не тот буффер почитать
Проблема не в почитать, а в записи не туда. В случае процесса запись не туда - это сегфолт. В случае с тредами непонятно что делать дальше. Вообщем, вопрос в размере failure domain.

Zart
25.01.2017
11:40:17
непонятно, почему это вообще вопрос

или что делать, если акелла промахнулся

Roman
25.01.2017
11:43:25
или что делать, если акелла промахнулся
Люди косячат и ошибаются. С этим надо как-то жить

Zart
25.01.2017
11:43:44
но треды тут причем?

Google
Roman
25.01.2017
11:45:39
но треды тут причем?
потому что failure domain - это весь процесс.

Anatoly
25.01.2017
11:46:12
дальше, если у вас есть какое-то разделяемое состояние между тредами/процессами, его можно закорраптить в любой модели

Zart
25.01.2017
11:46:45
аргументы какие-то тупые совсем

Roman
25.01.2017
11:46:57
вот есть у вас libmagic, которая определяет тип файла. проблема в том, что на некоторых файлах она может залипнуть на несколько минут и хочется запускать её с таймаутом. ваши действия?

Zart
25.01.2017
11:47:11
выкинуть такую либу нахуй?

если она не подходит под задачу

Roman
25.01.2017
11:47:42
выкинуть такую либу нахуй?
да любой таск с таймаутом как сделаешь с тредами?

Zart
25.01.2017
11:48:13
почему ты тогда вообще не в qnx? там всё раскидано по юзерпроцессам, включая дрова

Anatoly
25.01.2017
11:48:15
эмм.. как, если на мы не знаем границы повреждений?
ну, например, мы пишем в одну и ту же БД. я могу промахнуться и ёбнуть все данные.

да любой таск с таймаутом как сделаешь с тредами?
да также, как и без тредов. разницы с процессом никакой.

Roman
25.01.2017
11:49:09
да также, как и без тредов. разницы с процессом никакой.
ээ.. и как же нам завершить тред, который ушёл в себя?

Anatoly
25.01.2017
11:49:18
вы не поверите, прибить его

Zart
25.01.2017
11:49:28
т.е. ты из тех, кто юзает alarm(2) ?

Roman
25.01.2017
11:49:33
вы не поверите, прибить его
ой ли. чем? каким образом? )

Anatoly
25.01.2017
11:49:56
ээ.. и как же нам завершить тред, который ушёл в себя?
TerminateThread is used to cause a thread to exit. When this occurs, the target thread has no chance to execute any user-mode code. DLLs attached to the thread are not notified that the thread is terminating. The system frees the thread's initial stack.

Zart
25.01.2017
11:50:20
это довольно грубый вариант

Anatoly
25.01.2017
11:50:20
в хаскеле - асинхронным исключением, в дотнетах - thread.abort(), etc, etc

Google
Anatoly
25.01.2017
11:50:28
а что у нас с этим в posix?
да поебать на ваш posix

Zart
25.01.2017
11:50:58
у позикса хуева куча граблей с сигналами и тредами

Anatoly
25.01.2017
11:51:09
это довольно грубый вариант
ну, если мы вынуждены использовать говно без статуса и отмены, то извините.

Zart
25.01.2017
11:51:11
да и тонна ёбли с форком и дескрипторами

Roman
25.01.2017
11:52:22
я уже сказал куда засунуть тот либмагик
да любая задача, где тебе нужен таймаут на операцию

Anatoly
25.01.2017
11:52:27
я уже сказал куда засунуть тот либмагик
ну я согласен. но бывают варианты (тм), например, у нас экселька, мы транформируем её в пдфку с помощью офеса. это может занять долго. поэтому там мы всякое делаем. Но там любимая схема с "запустить отдельный процесс"

Anatoly
25.01.2017
11:52:53
и да, это грубо и ресурсы потекут.
у меня ничего не течёт. я потому что чищу потом ресурсы за потоком.

Anatoly
25.01.2017
11:53:54
да любая задача, где тебе нужен таймаут на операцию
если весь код контролируется нами, то не поверите, есть куча способов для этого. от апи в библиотеках: Task.When(DoSmth, TimeOut), дальше в DoSmth надо чекать не отменили ли нас. очень сложно, понимаю.

в целом, общий посыл "многопоточность сложно, не надо её юзать" мне понятен и я с ним согласен почти всегда.

Anatoly
25.01.2017
11:56:39
в сишечке?
даже в сишечке есть. WinApi.Timer никуда не делся. WaitForMultipleObjects тоже.

Roman
25.01.2017
11:56:40
в целом, общий посыл "многопоточность сложно, не надо её юзать" мне понятен и я с ним согласен почти всегда.
посыл в том, что общая память создаёт ситуации из которых сложно выбираться.

Zart
25.01.2017
11:56:51
у меня ощущение что человек очень хочет рилтайм ос

Anatoly
25.01.2017
11:57:01
посыл в том, что общая память создаёт ситуации из которых сложно выбираться.
"иногда" создаёт. не всегда потоки разделяют состояние.

Anatoly
25.01.2017
11:57:43
общая память
нет. она не "общая",

Страница 142 из 1719