-
- Может быть и так. Просто на глаза попадалось несколько application
notes на тему как на лонгджампах сделать конкурентную
мультизадачность, без ассемблера. Складно получалось. - Cкpипaч(01.03.2023 13:43)
- На пустынных просторах есть и моё поделие на эту тему :-) И где-то
на компе валяется продвинутый вариант, с блекджеком и семафорами.
Но оно работает только и исключительно потому, что писатели модных
компиляторов ещё не добрались грязными лапками до этих закоулков.
Тама фишка в том, что переход по longjmp "вниз" по дереву вызовов -
не определен. То есть если foo() вызывает bar(), то longjmp назад
из bar() в foo() корректен, а вот в обратную сторону - нет. - LightElf(08.03.2023 15:24)
- Разумеется все об этом знают, и поэтому в нитях не используют локальные переменные. Только глобальные. Ибо после раскрутки стека, закрутить его обратно невозможно. - =AlexD=(09.03.2023 09:52)
- "Цэ нитки"? Скачал в коллекцию, ссылочку рядом положил. Пока не
понял, как кроме задержек на что-то применить, хотя бы
ct_wait_while() Dingo(1 знак., 09.03.2023 06:20, ссылка)
- Ну это кооперативая многозадачка, сваянная на коленке по приколу. Каждая нитка имеет свой кусок стека, который отрезается от исходного системного стека. Где-то валяется более продвинутый вариант, выложу если найду. Там есть семафоры, мутексы и статические приоритеты задач. Но его на железе не тестил - только на компе. - LightElf(09.03.2023 10:52)
- На пустынных просторах есть и моё поделие на эту тему :-) И где-то
на компе валяется продвинутый вариант, с блекджеком и семафорами.
Но оно работает только и исключительно потому, что писатели модных
компиляторов ещё не добрались грязными лапками до этих закоулков.
Тама фишка в том, что переход по longjmp "вниз" по дереву вызовов -
не определен. То есть если foo() вызывает bar(), то longjmp назад
из bar() в foo() корректен, а вот в обратную сторону - нет. - LightElf(08.03.2023 15:24)
- Может быть и так. Просто на глаза попадалось несколько application
notes на тему как на лонгджампах сделать конкурентную
мультизадачность, без ассемблера. Складно получалось. - Cкpипaч(01.03.2023 13:43)