
Yarique
10.10.2018
19:38:00

Anatoly
10.10.2018
19:38:36


Max
10.10.2018
19:45:12
по сути, система вызывает указанный программистом коллбек вне контекста какого-либо потока процесса
для линукса это не совсем так:
'A signal may be generated (and thus pending) for a process as a whole (e.g., when sent using kill(2)) or for a specific thread (e.g., certain signals, such as SIGSEGV and SIGFPE, generated as a con‐
sequence of executing a specific machine-language instruction are thread directed, as are signals targeted at a specific thread using pthread_kill(3)). A process-directed signal may be delivered to
any one of the threads that does not currently have the signal blocked. If more than one of the threads has the signal unblocked, then the kernel chooses an arbitrary thread to which to deliver the
signal.' (c) man 7 signal.
Хотя в чистом posix (man 2 signal) это вообще
'The effects of signal() in a multithreaded process are unspecified.'

Anatoly
10.10.2018
19:46:07

Google

Alexey
10.10.2018
20:03:50
В расширении если точнее
Которое поддерживают почти все
Кроме разве что жёсткого эмбеддеда

Max
10.10.2018
20:05:19

Alexey
10.10.2018
20:06:15
Насколько я помню из прокуренного - потоки могут собственные правила обработки сигналов задавать
И приходят сигналы именно в потоки как единицы планирования выполнения

Max
10.10.2018
20:12:35
Впрочем, в последнем "The Open Group Base Specifications Issue 7, 2018 edition" строки про "The effects of signal() in a multithreaded process are unspecified." уже нет. Хотя и всё равно не могу найти где она specified )
http://pubs.opengroup.org/onlinepubs/9699919799/
В предыдущем, "The Open Group Base Specifications Issue 6" она ещё есть )
http://pubs.opengroup.org/onlinepubs/009695399/functions/signal.html

Ilia
11.10.2018
04:43:25
Тогда такой вопрос: результаты на Intel64 и Amd64 коррелируют? Если на первом прирост скорости, то на втором тоже?

Google

Kitsu
11.10.2018
04:57:22

Ilia
11.10.2018
04:58:59
понятно, что инструкции будут одни и теже, но то как будут справляться процессоры надо уже мерять. с определенностью можно сказать одно, что если у тебя, к примеру, был алгоритм с квадратичной сложностью, а ты заменил его на алгоритм с линейной прирост определенно будет.

Kitsu
11.10.2018
05:00:56
Там немного отличается спекулятивное выполнение, но думаю будет нетривиально получить такую пару сниппентов кода, на которых у одного будет повышение, а у другого - замедление скорости работы.
Если это не самоцель, то различия можно свести на погрешность

Alexen
11.10.2018
05:57:10
Есть набор последовательностей которые могут на одной архитектуре выстрелить, их даже специально искать не нужно: обычный read-modify-write, можно легко попасть на такой порядок даже не задумываясь. Из типичного примера берутся рекомендации из гайда по оптимизации для одного процессора и они будут наверняка более неправильными с точки зрения производительности для другого

Zhenya
11.10.2018
07:41:21
Кто-то начинал курс на Coursera от яндекса?

Simon
11.10.2018
07:41:53
Кто-то начинал. Спрашивай конкретнее

Zhenya
11.10.2018
07:43:55
Интересует фин. помощь от Coursera, предоставляют на этот курс?

A.D.
11.10.2018
07:45:10

Agrailag
11.10.2018
07:46:11

Александр
11.10.2018
08:44:08
никто не пробовал делать что-то подобное на вариадиках?
template <class... Ts>
struct foo {
virtual void method(Ts) = 0; // здесь где-то должно быть многоточие
};
// чтобы для Ts = int, float, bool получилось
struct foo {
virtual void method(int) = 0;
virtual void method(float) = 0;
virtual void method(bool) = 0;
};

Andrey
11.10.2018
08:54:09

Александр
11.10.2018
08:54:58

Spoonson
11.10.2018
09:29:14
только using Ts::method...; придется юзать, а он только с с++17
ну или рекурсивно наследовать

Александр
11.10.2018
10:08:26

Antony
11.10.2018
12:47:37
Не знаю видели ли вы это предложение: http://wg21.link/P0989
Можно будет писать long long long int :)

Stanislav
11.10.2018
12:48:36

Kathu
11.10.2018
12:48:44
тогда смысл пропадает от long long, он же с расширением разрядности тоже увеличивается

Google

Alexander
11.10.2018
12:49:03
как это сделано в wide_int

Дед Пегас
11.10.2018
12:49:29
+

A.D.
11.10.2018
12:49:42

Stanislav
11.10.2018
12:51:22

Alexander
11.10.2018
12:52:06

Sergey
11.10.2018
12:52:08
short long int j; // (1 + 1/0.5)(32) = 48 bits
:)

Alexander
11.10.2018
12:52:21
ну ладно, посмеялись и хватит :)

Agrailag
11.10.2018
12:52:52

Stanislav
11.10.2018
12:53:09

Alex Фэils?︙
11.10.2018
12:54:15

Александр
11.10.2018
12:54:19
самое смешное из предложения (помимо диакритики):
C++17
{
int b12 : 12;
int b5 : 5;
}
C++20
{
long short short int b12;
short long short short short int b5;
}

Aleksei
11.10.2018
12:55:24
Как-то не удобно

A.D.
11.10.2018
12:58:51
я уж испугался, что на волне diversity щас появятся куча пропозалов, которым нельзя будет отказать

Victor
11.10.2018
12:58:55

Alexander
11.10.2018
13:00:01

A.D.
11.10.2018
13:00:50

Alexander
11.10.2018
13:01:00
Буду Александрой Зайцевой. Благо волосы уже отрастил. В комитете Беларусь представлять буду

Google

Anatoly
11.10.2018
13:02:43

Alex Фэils?︙
11.10.2018
13:21:46

Ilia
11.10.2018
13:23:06

Евгений
11.10.2018
13:23:19
предлагаю по количеству букв l в слове long, дабы запись была короче
lllllllong

Alex Фэils?︙
11.10.2018
13:24:03
тяжело читается...
я б за wide_int голоснул бы :)

Aidar
11.10.2018
13:24:27
wide_int жеж

Евгений
11.10.2018
13:24:27
long 4 раза тоже неайс)

Дед Пегас
11.10.2018
13:24:34
В бан всех, что ли.