Size: a a a

2021 May 07

YS

Yan Shkurinskiy in Haskell
Прикол, кооперативная
источник

AP

Aleksei (astynax) Pi... in Haskell
Выглядит как вытесняющая, но внутри у ней неонка кооператив :)
источник

AP

Aleksei (astynax) Pi... in Haskell
Только один тред, не? m-to-n же, если -threaded
источник

YS

Yan Shkurinskiy in Haskell
Гибрид какой-то
источник

YS

Yan Shkurinskiy in Haskell
Как бы контекст свитчну, никого не спрашивая, но только после того, как дадут отмашку
источник

D

Dreamerinnoise in Haskell
ну да в доках ещё заявляют что вытесняющая

http://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Concurrent.html#g:13
источник

D

Dreamerinnoise in Haskell
вытесняющая не вытесняющая
источник

YS

Yan Shkurinskiy in Haskell
Недовытесняющая
источник

YS

Yan Shkurinskiy in Haskell
С:
источник

[

[BRM]White Rabbit in Haskell
Кооперативно вытесняет рантайм ошибки!
источник

YS

Yan Shkurinskiy in Haskell
Притесняет
источник

[

[BRM]White Rabbit in Haskell
Дак если бы
источник

[

[BRM]White Rabbit in Haskell
Я бы тогда увидел сообщение типа "ха-ха, ты только посмотри, как этот лох обосрался"
источник

YS

Yan Shkurinskiy in Haskell
Я только что увидел
источник

[

[BRM]White Rabbit in Haskell
Молодец
источник

[

[BRM]White Rabbit in Haskell
Возьми с полки кусочек немутабельности
источник

[

[BRM]White Rabbit in Haskell
попробуй.
получится - скинь, как
источник

[

[BRM]White Rabbit in Haskell
Спасибо.
Я хочу сначала asyncBounded попробовать, если не получится, перейду на этот вариант.
источник

IO

I O in Haskell
Это звучит логично, но на практике не работает

main :: IO ()
main = do
 ref <- newIORef False

 void $ forkOS $ fix \go -> readIORef ref >>= \case
   True  -> putStrLn "bye"
   False -> go

 threadDelay 100

 atomicWriteIORef ref True

скомпилированное с -O -threaded и запущенное с +RTS -N6 намертво виснет, даже явный forkOS не помогает. С мавром то же самое, -fno-omit-yields опять все чинит
источник

IO

I O in Haskell
(Так что asyncBounded вряд ли поможет)
источник