Size: a a a

Scala User Group

2020 September 04

AR

Aleksander Ryblov in Scala User Group
Oleg ℕizhnik
они будут прерываться, но вы создаёте таск, который нельзя прервать без thread interrupt, такое можно с помощью effectBlocking
https://zio.dev/docs/overview/overview_creating_effects#blocking-synchronous-side-effects
Спасибо!!!
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Aleksander Ryblov
Спасибо!!!
источник

Oℕ

Oleg ℕizhnik in Scala User Group
effectBlockingInterrupt правильная функция
источник

λ

λoλcat in Scala User Group
Но дорогая как пишут в ридми
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну очевидно, раз для таска свой тред создаётся
источник

AR

Aleksander Ryblov in Scala User Group
Супер!!! Спасибо еще раз
источник

Oℕ

Oleg ℕizhnik in Scala User Group
наверное, можно сделать хитрый экзекьютор, который сможет переиспользовать незаинтеррапченные треды, чтобы быть эффективным при счастливом стечении
источник

Oℕ

Oleg ℕizhnik in Scala User Group
чтобы дорогим было только в случае интерраптов
источник

λ

λoλdog in Scala User Group
Oleg ℕizhnik
ну очевидно, раз для таска свой тред создаётся
Даже без пула?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
λoλdog
Даже без пула?
я хз
источник

Oℕ

Oleg ℕizhnik in Scala User Group
λoλdog
Даже без пула?
судя по коду в пуле дело происходит, просто ловится InterruptedException
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну значит средне дорогая
источник

Oℕ

Oleg ℕizhnik in Scala User Group
try {
 val a = effect

 ZIO.succeedNow(a)
} catch {
 case _: InterruptedException =>
   Thread.interrupted // Clear interrupt status
   ZIO.interrupt
 case t: Throwable =>
   ZIO.fail(t)
} finally {
 withMutex { thread.set(None); end.set(()) }
}
источник

λ

λoλdog in Scala User Group
if (looping) {
                   n += 1
                   Thread.sleep(math.min(50, base * n))
                 }
источник

λ

λoλdog in Scala User Group
что-то мега интересное
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну линейный бэкофф на случай, если много будет желателей поинтерраптить тред одновременно
источник

ИС

И С in Scala User Group
В чем может быть проблема? Просто завис на шаге апдейт

$ sbt update
[info] Loading settings for project transcoder-grpc-build from scalapb.sbt,assembly.sbt ...
[info] Loading project definition from /builds/assistant/transcoder-grpc/project
[info] Loading settings for project transcoder-grpc from build.sbt ...
[info] Set current project to sip-transcoder-via-jvoip (in build file:/builds/assistant/transcoder-grpc/)
[info] Updating ...
источник

ИС

И С in Scala User Group
раньше этот шаг за 2-3 завершался. Сейчас жду минут 15 и ничего не происходит
источник

λ

λoλegΥch in Scala User Group
посмотри в $tmp/sbt*.log
источник

ИС

И С in Scala User Group
λoλegΥch
посмотри в $tmp/sbt*.log
К сожалению, не могу так как это в гитлаб джобе, которая в контейнере собирается
источник