170 похожих чатов

Есть чудесный файл https://cs.opensource.google/go/go/+/refs/tags/go1.16.6:src/runtime/preempt.go Прямо в заголовке которого кратко описан весь

механизм
Зачем спорить то?)

13 ответов

8 просмотров

Тогда к чему вопросы? Там все ясно написано.

Sergey Z.
Тогда к чему вопросы? Там все ясно написано.

Ну там инспекция в signal handler, AFAIK. И прерывание через него.

Roman Timofeev
Ну там инспекция в signal handler, AFAIK. И преры...

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

Sergey Z.
Ну какая разница из-за чего дёргается инспекция. Р...

Ну компилятор навтыкал флажков + инспекция в обработчике

Sergey Z.
Тогда к чему вопросы? Там все ясно написано.

// Preemption at asynchronous safe-points is implemented by suspending // the thread using an OS mechanism (e.g., signals) там ясно написано про вытеснение и как оно реализовано, а не юзерспейс и ядерный планировщик

Roman Timofeev
Ну компилятор навтыкал флажков + инспекция в обраб...

Ну. Да. Ты сам ответил на свой вопрос "Почему бы руками не вызывать планировщик?" Потому что это можно автоматизировать и оптимизировать.

c
// Preemption at asynchronous safe-points is imple...

Ядро ничего не знает про горутины. Оно не планирует их выполнение.

Sergey Z.
Ну. Да. Ты сам ответил на свой вопрос "Почему бы р...

Меня смутила история про планировщик в отдельном треде и какую-то инспекцию извне. С таким же успехом можно было вместо safe points раскладывать runtime.Goshed() срабатывающий в какой-то % итераций

Roman Timofeev
Меня смутила история про планировщик в отдельном т...

я боюсь оно не очень эффективно будет раскладываться

Roman Timofeev
Меня смутила история про планировщик в отдельном т...

Goshed, вроде, просто помечает горутину безопасной и дёргает планировщик. У него масштаб другой. А то за тебя компилятор все точечно разметит под каждую конкретную архитектуру процессора, на уровне инструкций.

c
я боюсь оно не очень эффективно будет раскладывать...

Хотя, признаюсь честно что идея с сигналами-изящная

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
11
открыть папку в проводнике: 1 - ShellExecute 2 - ExecuteProcess 3 - OpenDocument что лучше выбрать?
Alexey Kulakov
12
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта