
Roman
25.01.2017
09:11:59

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

Roman
25.01.2017
09:13:51

Google

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

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

Alexey
25.01.2017
09:14:21

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
т.е. ты сейчас главное достоинство потоков - общая память - записал в недостатки?
я ж говорю, линупсоиды в треды не умеют
не то что солярщики

Roman
25.01.2017
09:20:39

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

Roman
25.01.2017
09:20:56

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
в идеале, хотелось бы передать в ядро вектор операций с аргументами и потом получать результаты.

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

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

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

Roman
25.01.2017
09:37:02

Zart
25.01.2017
09:37:24
проверки ацл и т.п. генерят дополнительное i/o ж
но я в эти дебри лезть не хочу, пусть этим ядрёные погромисты страдают

Anatoly
25.01.2017
10:01:35

Roman
25.01.2017
11:37:56

Zart
25.01.2017
11:40:17
непонятно, почему это вообще вопрос
или что делать, если акелла промахнулся

Roman
25.01.2017
11:43:25

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

Anatoly
25.01.2017
11:45:37

Google

Roman
25.01.2017
11:45:39

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
выкинуть такую либу нахуй?
если она не подходит под задачу

Anatoly
25.01.2017
11:47:26

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.

Roman
25.01.2017
11:50:19

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

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
я уже сказал куда засунуть тот либмагик
ну я согласен. но бывают варианты (тм), например, у нас экселька, мы транформируем её в пдфку с помощью офеса. это может занять долго. поэтому там мы всякое делаем. Но там любимая схема с "запустить отдельный процесс"

Roman
25.01.2017
11:52:33

Anatoly
25.01.2017
11:52:53

Zart
25.01.2017
11:53:37

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

Roman
25.01.2017
11:55:58

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

Roman
25.01.2017
11:57:06

Anatoly
25.01.2017
11:57:43