Было: MPMC FAA-очередь занятых элементов + такая же очередь свободных элементов Стало: MPMC FAA-очередь занятых элементов + битсет, отвечающий за свободные элементы
Битсет имеет операции push(index) и take_any() -> optional<size_t> Выглядит как массив атомиков, в которых один битик соответствует одному индексу. Я хотел минимизировать контеншн, потому 1. массив побит на блоки по 16 атомиков (128 байт, 1024 элемента-битика) 2. каждый поток имеет свой "родной" блок
На take_any() мы ищем битик в родном блоке. Если не нашли — начинаем проходить по чужим блокам. Прошли круг и ничего не нашли — очень жаль, вываливаемся
Есть у меня большие сомнения в линеаризуемости этого добра) Хотя пока читатель один, должно сходиться
Дальше буду смотреть, есть ли прок от замены MPMC очереди на MPSC, раз мне больше всё равно не надо
Было: MPMC FAA-очередь занятых элементов + такая же очередь свободных элементов Стало: MPMC FAA-очередь занятых элементов + битсет, отвечающий за свободные элементы
Битсет имеет операции push(index) и take_any() -> optional<size_t> Выглядит как массив атомиков, в которых один битик соответствует одному индексу. Я хотел минимизировать контеншн, потому 1. массив побит на блоки по 16 атомиков (128 байт, 1024 элемента-битика) 2. каждый поток имеет свой "родной" блок
На take_any() мы ищем битик в родном блоке. Если не нашли — начинаем проходить по чужим блокам. Прошли круг и ничего не нашли — очень жаль, вываливаемся
Есть у меня большие сомнения в линеаризуемости этого добра) Хотя пока читатель один, должно сходиться
Дальше буду смотреть, есть ли прок от замены MPMC очереди на MPSC, раз мне больше всё равно не надо
This ability to mix the public and the private, as well as the ability to use bots to engage with users has proved to be problematic. In early 2021, a database selling phone numbers pulled from Facebook was selling numbers for $20 per lookup. Similarly, security researchers found a network of deepfake bots on the platform that were generating images of people submitted by users to create non-consensual imagery, some of which involved children. Artem Kliuchnikov and his family fled Ukraine just days before the Russian invasion. Such instructions could actually endanger people — citizens receive air strike warnings via smartphone alerts. Groups are also not fully encrypted, end-to-end. This includes private groups. Private groups cannot be seen by other Telegram users, but Telegram itself can see the groups and all of the communications that you have in them. All of the same risks and warnings about channels can be applied to groups. Friday’s performance was part of a larger shift. For the week, the Dow, S&P 500 and Nasdaq fell 2%, 2.9%, and 3.5%, respectively.
from tw