Size: a a a

2020 July 11

KV

Kirill Valyavin in Haskell
Maxim Koltsov
вроде срабатывает
> catch (putStrLn "foo" >> threadDelay 2000000)
Ну вот так да
источник

KV

Kirill Valyavin in Haskell
Всё равно непонятно, должно же прерваться по асинхронному исключению и выбросить
источник

KV

Kirill Valyavin in Haskell
catchErrorCall :: IO () -> IO ()
catchErrorCall m = catch m h
 where
   h :: ErrorCall -> IO ()
   h e = putStrLn ("Caught: " ++ displayException e)
источник

KV

Kirill Valyavin in Haskell
Я вообще это отсюда взял:
https://markkarpov.com/tutorial/exceptions.html#how-to-avoid-catching-asynchronous-exceptions
Вот и недоумеваю, должно печататься, а не печатается
источник

аа

аа ааа in Haskell
Тут когда то говорили что стандартные настройки рантайма плохие. что с ними не так ?
источник

KZ

Kirill Zaborsky in Haskell
выбросить что?
источник

KV

Kirill Valyavin in Haskell
Kirill Zaborsky
выбросить что?
Ошибку из хэндлера
источник

AA

A64m AL256m qn<co... in Haskell
аа ааа
Тут когда то говорили что стандартные настройки рантайма плохие. что с ними не так ?
слишком малый размер нулевого поколения
при этом для него параллельная сборка включена
на которую выделяется слишком много потоков
слишком малый размер кучи больших объектов при больших N
источник

KZ

Kirill Zaborsky in Haskell
Kirill Valyavin
Ошибку из хэндлера
тыж из хэндлера дальше не кидаешь, с чего кто-то за тебя это делать будет?
источник

AA

A64m AL256m qn<co... in Haskell
раньше было еще больше проблем, с тех пор кое что пофиксили
источник

KV

Kirill Valyavin in Haskell
Kirill Zaborsky
тыж из хэндлера дальше не кидаешь, с чего кто-то за тебя это делать будет?
А зачем дальше-то. Хэндлер должен словить асинхронное и обработать. Если threadDelay прерываемое (а должно быть прерываемое)
источник

KV

Kirill Valyavin in Haskell
И в статье по ссылке опечатка что ли? Или что-то с момента написания изменилось?
источник

KZ

Kirill Zaborsky in Haskell
ты пишешь "выбросить", а имеешь в виду "словить"?
источник

KV

Kirill Valyavin in Haskell
Kirill Zaborsky
ты пишешь "выбросить", а имеешь в виду "словить"?
Словить эксепшен и выбросить ошибку, ну напечатать
источник

AA

A64m AL256m qn<co... in Haskell
ну и можно посчитать что однопоточный рантайм по умолчанию - тоже плохая настройка по умолчанию
источник

KV

Kirill Valyavin in Haskell
Побочный тред ждёт и слушает исключения. Главный кидает в него асинхронное и тоже ждёт, но поменьше. Побочный не ловит, пока не threadDelay не закончится. А должен ловить
источник

KZ

Kirill Zaborsky in Haskell
ща глубже копать лень, но по-моему просто throwTo кидает исключение раньше чем catch выставяет хэндлер
источник

KZ

Kirill Zaborsky in Haskell
яб предпочёт race
источник

KV

Kirill Valyavin in Haskell
Kirill Zaborsky
ща глубже копать лень, но по-моему просто throwTo кидает исключение раньше чем catch выставяет хэндлер
Похоже, что так, спасибо!
источник

VY

Vasiliy Yorkin in Haskell
можно ли как-то передать в cabal repl опцию -ignore-dot-ghci?
источник