Open dacr opened 1 month ago
Thanks. I'll look into it.
Alright, I think I've fixed it. I'm not going to close this report immediately, as there might still be issues. I'll make a release soon to allow further testing.
v0.25.0 will be out as soon as CI has finished.
:) Fixed for the two examples I have just tried.
There is probably other issues (although not sure at 100%), for example with this animated script is frozen :
// ---------------------
//> using scala "3.5.1"
//> using dep "org.creativescala::doodle:0.25.0"
// ---------------------
import cats.effect.IO
import doodle.core.*
import doodle.syntax.*
import doodle.syntax.all.*
import doodle.interact.*
import doodle.interact.syntax.*
import doodle.interact.syntax.all.*
import doodle.java2d.*
import doodle.java2d.effect.*
import fs2.Stream
import cats.effect.unsafe.implicits.global
import scala.concurrent.duration.{FiniteDuration, MILLISECONDS}
import cats.instances.all._
import cats.syntax.all._
val frame: Frame = Frame(
size = Size.fixedSize(600, 600),
title = "Photos",
center = Center.atOrigin,
background = Some(Color.midnightBlue),
redraw = Redraw.clearToBackground
)
val ball =
-100.0
.upTo(100.0)
.map(x =>
Picture
.circle(30)
.fillColor(Color.chartreuse)
.strokeWidth(3.0)
.at(x, 0.0)
)
.forSteps(100)
.repeatForever
ball
.animate(frame)
scala.io.StdIn.readLine("Enter to exit...") // required when run as a script
It also get the same result using a REPL session :
There is probably other issues (although not sure at 100%), for example with this animated script is frozen :
// --------------------- //> using scala "3.5.1" //> using dep "org.creativescala::doodle:0.25.0" // --------------------- import cats.effect.IO import doodle.core.* import doodle.syntax.* import doodle.syntax.all.* import doodle.interact.* import doodle.interact.syntax.* import doodle.interact.syntax.all.* import doodle.java2d.* import doodle.java2d.effect.* import fs2.Stream import cats.effect.unsafe.implicits.global import scala.concurrent.duration.{FiniteDuration, MILLISECONDS} import cats.instances.all._ import cats.syntax.all._ val frame: Frame = Frame( size = Size.fixedSize(600, 600), title = "Photos", center = Center.atOrigin, background = Some(Color.midnightBlue), redraw = Redraw.clearToBackground ) val ball = -100.0 .upTo(100.0) .map(x => Picture .circle(30) .fillColor(Color.chartreuse) .strokeWidth(3.0) .at(x, 0.0) ) .forSteps(100) .repeatForever ball .animate(frame) scala.io.StdIn.readLine("Enter to exit...") // required when run as a script
It also gives the same result using a REPL session :
The thread dump :
2024-09-26 19:34:18
Full thread dump OpenJDK 64-Bit Server VM (22+36-nixos mixed mode, sharing):
Threads class SMR info:
_java_thread_list=0x0000762520022140, length=35, elements={
0x00007625f0018570, 0x00007625f0144a30, 0x00007625f0146110, 0x00007625f0147da0,
0x00007625f0149470, 0x00007625f014aaa0, 0x00007625f014c6d0, 0x00007625f014de70,
0x00007625f015c960, 0x00007625f01601f0, 0x00007625f06a5740, 0x00007625f06a6a10,
0x00007625f06a7f40, 0x00007625f06a91f0, 0x00007625f06aa4b0, 0x00007625f06ab770,
0x00007625f06aca40, 0x00007625f06add10, 0x00007625f06af070, 0x00007625f06b0210,
0x00007625f06b1290, 0x00007625f06b2450, 0x00007625f06b3ae0, 0x00007625f06b51a0,
0x00007625f06b67b0, 0x00007625f06b79d0, 0x00007624f8069590, 0x00007624f800e440,
0x00007624f806c580, 0x00007624f806d820, 0x0000762450376650, 0x00007624fc02a560,
0x000076248008f9b0, 0x000076248c084490, 0x000076250406aa10
}
"main" #1 [225987] prio=5 os_prio=0 cpu=416.67ms elapsed=28.77s tid=0x00007625f0018570 nid=225987 waiting on condition [0x00007625f73fd000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec01168> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@22/LockSupport.java:269)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@22/AbstractQueuedSynchronizer.java:1758)
at java.util.concurrent.ArrayBlockingQueue.poll(java.base@22/ArrayBlockingQueue.java:435)
at cats.effect.IOPlatform.$anonfun$1(IOPlatform.scala:80)
at cats.effect.IOPlatform$$Lambda/0x000076256f1cf9c0.apply(Unknown Source)
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:62)
at scala.concurrent.package$.blocking(package.scala:124)
at cats.effect.IOPlatform.unsafeRunTimed(IOPlatform.scala:80)
at cats.effect.IOPlatform.unsafeRunSync(IOPlatform.scala:42)
at doodle.interact.syntax.AnimationRendererSyntax.runIO(AnimationRendererSyntax.scala:27)
at doodle.interact.syntax.AnimationRendererSyntax.runIO$(AnimationRendererSyntax.scala:24)
at doodle.interact.syntax.package$animationRenderer$.runIO(package.scala:29)
at doodle.interact.syntax.AbstractAnimationRendererSyntax$AnimateToStreamOps.animateFrames(AbstractAnimationRendererSyntax.scala:129)
at doodle.interact.animation.Transducer.animate(Transducer.scala:371)
at doodle.interact.animation.Transducer.animate$(Transducer.scala:64)
at doodle.interact.animation.Transducer$$anon$7.animate(Transducer.scala:337)
at vectorgraphics$minusdoodle$minusexample$minusanimate$minus1$_.<init>(vectorgraphics-doodle-example-animate-1.sc:54)
at vectorgraphics$minusdoodle$minusexample$minusanimate$minus1_sc$.script$lzyINIT1(vectorgraphics-doodle-example-animate-1.sc:72)
at vectorgraphics$minusdoodle$minusexample$minusanimate$minus1_sc$.script(vectorgraphics-doodle-example-animate-1.sc:72)
at vectorgraphics$minusdoodle$minusexample$minusanimate$minus1_sc$.main(vectorgraphics-doodle-example-animate-1.sc:76)
at vectorgraphics$minusdoodle$minusexample$minusanimate$minus1_sc.main(vectorgraphics-doodle-example-animate-1.sc)
"Reference Handler" #9 [225995] daemon prio=10 os_prio=0 cpu=0.87ms elapsed=28.75s tid=0x00007625f0144a30 nid=225995 waiting on condition [0x00007625cd7fa000]
java.lang.Thread.State: RUNNABLE
at java.lang.ref.Reference.waitForReferencePendingList(java.base@22/Native Method)
at java.lang.ref.Reference.processPendingReferences(java.base@22/Reference.java:246)
at java.lang.ref.Reference$ReferenceHandler.run(java.base@22/Reference.java:208)
"Finalizer" #10 [225996] daemon prio=8 os_prio=0 cpu=0.10ms elapsed=28.75s tid=0x00007625f0146110 nid=225996 in Object.wait() [0x00007625cd6fa000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@22/Native Method)
- waiting on <0x000000060ec00078> (a java.lang.ref.NativeReferenceQueue$Lock)
at java.lang.Object.wait(java.base@22/Object.java:375)
at java.lang.Object.wait(java.base@22/Object.java:348)
at java.lang.ref.NativeReferenceQueue.await(java.base@22/NativeReferenceQueue.java:48)
at java.lang.ref.ReferenceQueue.remove0(java.base@22/ReferenceQueue.java:158)
at java.lang.ref.NativeReferenceQueue.remove(java.base@22/NativeReferenceQueue.java:89)
- locked <0x000000060ec00078> (a java.lang.ref.NativeReferenceQueue$Lock)
at java.lang.ref.Finalizer$FinalizerThread.run(java.base@22/Finalizer.java:173)
"Signal Dispatcher" #11 [225997] daemon prio=9 os_prio=0 cpu=0.11ms elapsed=28.75s tid=0x00007625f0147da0 nid=225997 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Service Thread" #12 [225998] daemon prio=9 os_prio=0 cpu=0.20ms elapsed=28.75s tid=0x00007625f0149470 nid=225998 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Monitor Deflation Thread" #13 [225999] daemon prio=9 os_prio=0 cpu=4.61ms elapsed=28.75s tid=0x00007625f014aaa0 nid=225999 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #14 [226000] daemon prio=9 os_prio=0 cpu=1040.42ms elapsed=28.75s tid=0x00007625f014c6d0 nid=226000 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"C1 CompilerThread0" #22 [226001] daemon prio=9 os_prio=0 cpu=163.22ms elapsed=28.75s tid=0x00007625f014de70 nid=226001 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"Notification Thread" #26 [226002] daemon prio=9 os_prio=0 cpu=0.05ms elapsed=28.75s tid=0x00007625f015c960 nid=226002 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Common-Cleaner" #27 [226003] daemon prio=8 os_prio=0 cpu=1.07ms elapsed=28.75s tid=0x00007625f01601f0 nid=226003 waiting on condition [0x00007625ccf25000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec028c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@22/LockSupport.java:269)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@22/AbstractQueuedSynchronizer.java:1847)
at java.lang.ref.ReferenceQueue.await(java.base@22/ReferenceQueue.java:71)
at java.lang.ref.ReferenceQueue.remove0(java.base@22/ReferenceQueue.java:143)
at java.lang.ref.ReferenceQueue.remove(java.base@22/ReferenceQueue.java:218)
at jdk.internal.ref.CleanerImpl.run(java.base@22/CleanerImpl.java:140)
at java.lang.Thread.runWith(java.base@22/Thread.java:1583)
at java.lang.Thread.run(java.base@22/Thread.java:1570)
at jdk.internal.misc.InnocuousThread.run(java.base@22/InnocuousThread.java:186)
"io-compute-6" #28 [226009] daemon prio=5 os_prio=0 cpu=28.08ms elapsed=28.54s tid=0x00007625f06a5740 nid=226009 waiting on condition [0x00007625cc925000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-2" #29 [226010] daemon prio=5 os_prio=0 cpu=29.01ms elapsed=28.54s tid=0x00007625f06a6a10 nid=226010 waiting on condition [0x00007625cc825000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-12" #30 [226011] daemon prio=5 os_prio=0 cpu=137.95ms elapsed=28.54s tid=0x00007625f06a7f40 nid=226011 waiting on condition [0x00007625cc725000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-10" #31 [226012] daemon prio=5 os_prio=0 cpu=30.43ms elapsed=28.54s tid=0x00007625f06a91f0 nid=226012 waiting on condition [0x00007625cc625000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-13" #32 [226013] daemon prio=5 os_prio=0 cpu=17.62ms elapsed=28.54s tid=0x00007625f06aa4b0 nid=226013 waiting on condition [0x00007625cc525000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-1" #33 [226014] daemon prio=5 os_prio=0 cpu=20.12ms elapsed=28.54s tid=0x00007625f06ab770 nid=226014 waiting on condition [0x00007625cc425000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-3" #34 [226015] daemon prio=5 os_prio=0 cpu=20.35ms elapsed=28.54s tid=0x00007625f06aca40 nid=226015 waiting on condition [0x00007625cc325000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-15" #35 [226016] daemon prio=5 os_prio=0 cpu=23.80ms elapsed=28.54s tid=0x00007625f06add10 nid=226016 waiting on condition [0x00007625cc225000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-0" #36 [226028] daemon prio=5 os_prio=0 cpu=20.02ms elapsed=28.54s tid=0x00007625f06af070 nid=226028 waiting on condition [0x00007625c75f4000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-4" #37 [226029] daemon prio=5 os_prio=0 cpu=31.28ms elapsed=28.54s tid=0x00007625f06b0210 nid=226029 waiting on condition [0x00007625c74f4000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-5" #38 [226030] daemon prio=5 os_prio=0 cpu=20.82ms elapsed=28.54s tid=0x00007625f06b1290 nid=226030 waiting on condition [0x00007625c73f4000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-blocker-11" #39 [226031] daemon prio=5 os_prio=0 cpu=6.77ms elapsed=28.54s tid=0x00007625f06b2450 nid=226031 in Object.wait() [0x00007625c72f3000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@22/Native Method)
- waiting on <0x000000060ec02c48> (a java.lang.Object)
at java.lang.Object.wait(java.base@22/Object.java:375)
at java.lang.Object.wait(java.base@22/Object.java:348)
at doodle.java2d.effect.BlockingCircularQueue.take(BlockingCircularQueue.scala:68)
- locked <0x000000060ec02c48> (a java.lang.Object)
at doodle.java2d.effect.Canvas.pump$$anonfun$1(Canvas.scala:76)
at doodle.java2d.effect.Canvas$$Lambda/0x000076256f2511e0.apply(Unknown Source)
at cats.effect.IOFiberPlatform.liftedTree1$1(IOFiberPlatform.scala:66)
at cats.effect.IOFiberPlatform.$anonfun$1(IOFiberPlatform.scala:72)
at cats.effect.IOFiberPlatform.$anonfun$adapted$1(IOFiberPlatform.scala:110)
at cats.effect.IOFiberPlatform$$Lambda/0x000076256f36cf20.apply(Unknown Source)
at cats.effect.IOFiber.runLoop(IOFiber.scala:1004)
at cats.effect.IOFiber.execR(IOFiber.scala:1362)
at cats.effect.IOFiber.run(IOFiber.scala:112)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:743)
"io-compute-blocker-12" #40 [226032] daemon prio=5 os_prio=0 cpu=19.80ms elapsed=28.54s tid=0x00007625f06b3ae0 nid=226032 in Object.wait() [0x00007625c71f3000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@22/Native Method)
- waiting on <no object reference available>
at java.lang.Object.wait(java.base@22/Object.java:375)
at java.lang.Object.wait(java.base@22/Object.java:348)
at doodle.java2d.effect.BlockingCircularQueue.take(BlockingCircularQueue.scala:68)
- locked <0x000000060ec00d40> (a java.lang.Object)
at doodle.java2d.effect.Canvas.pump$$anonfun$1(Canvas.scala:76)
at doodle.java2d.effect.Canvas$$Lambda/0x000076256f2511e0.apply(Unknown Source)
at cats.effect.IOFiberPlatform.liftedTree1$1(IOFiberPlatform.scala:66)
at cats.effect.IOFiberPlatform.$anonfun$1(IOFiberPlatform.scala:72)
at cats.effect.IOFiberPlatform.$anonfun$adapted$1(IOFiberPlatform.scala:110)
at cats.effect.IOFiberPlatform$$Lambda/0x000076256f36cf20.apply(Unknown Source)
at cats.effect.IOFiber.runLoop(IOFiber.scala:1004)
at cats.effect.IOFiber.execR(IOFiber.scala:1362)
at cats.effect.IOFiber.run(IOFiber.scala:112)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:743)
"io-compute-11" #41 [226033] daemon prio=5 os_prio=0 cpu=50.18ms elapsed=28.54s tid=0x00007625f06b51a0 nid=226033 waiting on condition [0x00007625c70f4000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-8" #42 [226034] daemon prio=5 os_prio=0 cpu=35.32ms elapsed=28.54s tid=0x00007625f06b67b0 nid=226034 waiting on condition [0x00007625c6ff4000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-14" #43 [226035] daemon prio=5 os_prio=0 cpu=27.82ms elapsed=28.54s tid=0x00007625f06b79d0 nid=226035 waiting on condition [0x00007625c6ef4000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"Java2D Disposer" #57 [226037] daemon prio=10 os_prio=0 cpu=0.60ms elapsed=28.30s tid=0x00007624f8069590 nid=226037 waiting on condition [0x00007625c6b8c000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec03b88> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:371)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@22/AbstractQueuedSynchronizer.java:519)
at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@22/ForkJoinPool.java:4013)
at java.util.concurrent.ForkJoinPool.managedBlock(java.base@22/ForkJoinPool.java:3961)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@22/AbstractQueuedSynchronizer.java:1707)
at java.lang.ref.ReferenceQueue.await(java.base@22/ReferenceQueue.java:67)
at java.lang.ref.ReferenceQueue.remove0(java.base@22/ReferenceQueue.java:158)
at java.lang.ref.ReferenceQueue.remove(java.base@22/ReferenceQueue.java:234)
at sun.java2d.Disposer.run(java.desktop@22/Disposer.java:145)
at java.lang.Thread.runWith(java.base@22/Thread.java:1583)
at java.lang.Thread.run(java.base@22/Thread.java:1570)
"AWT-XAWT" #58 [226038] daemon prio=6 os_prio=0 cpu=87.51ms elapsed=28.30s tid=0x00007624f800e440 nid=226038 runnable [0x00007625c6a8c000]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XToolkit.waitForEvents(java.desktop@22/Native Method)
at sun.awt.X11.XToolkit.run(java.desktop@22/XToolkit.java:687)
at sun.awt.X11.XToolkit.run(java.desktop@22/XToolkit.java:651)
at java.lang.Thread.runWith(java.base@22/Thread.java:1583)
at java.lang.Thread.run(java.base@22/Thread.java:1570)
"AWT-Shutdown" #60 [226039] prio=5 os_prio=0 cpu=0.08ms elapsed=28.30s tid=0x00007624f806c580 nid=226039 in Object.wait() [0x00007625c698c000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@22/Native Method)
- waiting on <0x000000060ec01fb8> (a java.lang.Object)
at java.lang.Object.wait(java.base@22/Object.java:375)
at java.lang.Object.wait(java.base@22/Object.java:348)
at sun.awt.AWTAutoShutdown.run(java.desktop@22/AWTAutoShutdown.java:291)
- locked <0x000000060ec01fb8> (a java.lang.Object)
at java.lang.Thread.runWith(java.base@22/Thread.java:1583)
at java.lang.Thread.run(java.base@22/Thread.java:1570)
"AWT-EventQueue-0" #59 [226040] prio=6 os_prio=0 cpu=433.99ms elapsed=28.30s tid=0x00007624f806d820 nid=226040 waiting on condition [0x00007625c688b000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec03ce0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:371)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@22/AbstractQueuedSynchronizer.java:519)
at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@22/ForkJoinPool.java:4013)
at java.util.concurrent.ForkJoinPool.managedBlock(java.base@22/ForkJoinPool.java:3961)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@22/AbstractQueuedSynchronizer.java:1707)
at java.awt.EventQueue.getNextEvent(java.desktop@22/EventQueue.java:565)
at java.awt.EventDispatchThread.pumpOneEventForFilters(java.desktop@22/EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEventsForFilter(java.desktop@22/EventDispatchThread.java:124)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(java.desktop@22/EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(java.desktop@22/EventDispatchThread.java:109)
at java.awt.EventDispatchThread.pumpEvents(java.desktop@22/EventDispatchThread.java:101)
at java.awt.EventDispatchThread.run(java.desktop@22/EventDispatchThread.java:90)
"TimerQueue" #63 [226058] daemon prio=5 os_prio=0 cpu=244.30ms elapsed=28.17s tid=0x0000762450376650 nid=226058 waiting on condition [0x00007625c5bfe000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec05310> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@22/LockSupport.java:269)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@22/AbstractQueuedSynchronizer.java:1758)
at java.util.concurrent.DelayQueue.take(java.base@22/DelayQueue.java:254)
at javax.swing.TimerQueue.run(java.desktop@22/TimerQueue.java:165)
at java.lang.Thread.runWith(java.base@22/Thread.java:1583)
at java.lang.Thread.run(java.base@22/Thread.java:1570)
"io-compute-9" #64 [226060] daemon prio=5 os_prio=0 cpu=18.89ms elapsed=28.07s tid=0x00007624fc02a560 nid=226060 waiting on condition [0x00007625c51fe000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-7" #65 [226061] daemon prio=5 os_prio=0 cpu=17.63ms elapsed=28.06s tid=0x000076248008f9b0 nid=226061 waiting on condition [0x00007625c47fe000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060ec031a8> (a cats.effect.unsafe.WorkStealingThreadPool)
at java.util.concurrent.locks.LockSupport.park(java.base@22/LockSupport.java:221)
at cats.effect.unsafe.WorkerThread.parkLoop$1(WorkerThread.scala:372)
at cats.effect.unsafe.WorkerThread.park$1(WorkerThread.scala:334)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:660)
"io-compute-blocker-18" #66 [226062] daemon prio=5 os_prio=0 cpu=0.71ms elapsed=28.06s tid=0x000076248c084490 nid=226062 waiting on condition [0x00007625c46fd000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060eebb6c8> (a java.util.concurrent.LinkedTransferQueue)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@22/LockSupport.java:410)
at java.util.concurrent.LinkedTransferQueue$DualNode.await(java.base@22/LinkedTransferQueue.java:452)
at java.util.concurrent.LinkedTransferQueue.xfer(java.base@22/LinkedTransferQueue.java:613)
at java.util.concurrent.LinkedTransferQueue.poll(java.base@22/LinkedTransferQueue.java:1268)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:455)
"io-compute-blocker-19" #67 [226063] daemon prio=5 os_prio=0 cpu=0.36ms elapsed=28.05s tid=0x000076250406aa10 nid=226063 waiting on condition [0x00007625c45fd000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@22/Native Method)
- parking to wait for <0x000000060eebabe8> (a java.util.concurrent.LinkedTransferQueue)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@22/LockSupport.java:410)
at java.util.concurrent.LinkedTransferQueue$DualNode.await(java.base@22/LinkedTransferQueue.java:452)
at java.util.concurrent.LinkedTransferQueue.xfer(java.base@22/LinkedTransferQueue.java:613)
at java.util.concurrent.LinkedTransferQueue.poll(java.base@22/LinkedTransferQueue.java:1268)
at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:455)
"VM Thread" os_prio=0 cpu=6.12ms elapsed=28.76s tid=0x00007625f0136390 nid=225994 runnable
"GC Thread#0" os_prio=0 cpu=4.31ms elapsed=28.77s tid=0x00007625f00452d0 nid=225988 runnable
"GC Thread#1" os_prio=0 cpu=6.98ms elapsed=28.54s tid=0x000076255c009310 nid=226017 runnable
"GC Thread#2" os_prio=0 cpu=6.91ms elapsed=28.54s tid=0x000076255c009e90 nid=226018 runnable
"GC Thread#3" os_prio=0 cpu=6.85ms elapsed=28.54s tid=0x000076255c00aa10 nid=226019 runnable
"GC Thread#4" os_prio=0 cpu=4.37ms elapsed=28.54s tid=0x000076255c00b590 nid=226020 runnable
"GC Thread#5" os_prio=0 cpu=6.85ms elapsed=28.54s tid=0x000076255c00c110 nid=226021 runnable
"GC Thread#6" os_prio=0 cpu=4.44ms elapsed=28.54s tid=0x000076255c00ccc0 nid=226022 runnable
"GC Thread#7" os_prio=0 cpu=4.74ms elapsed=28.54s tid=0x000076255c00d870 nid=226023 runnable
"GC Thread#8" os_prio=0 cpu=2.28ms elapsed=28.54s tid=0x000076255c00e440 nid=226024 runnable
"GC Thread#9" os_prio=0 cpu=6.85ms elapsed=28.54s tid=0x000076255c00f030 nid=226025 runnable
"GC Thread#10" os_prio=0 cpu=4.31ms elapsed=28.54s tid=0x000076255c00fc20 nid=226026 runnable
"GC Thread#11" os_prio=0 cpu=4.82ms elapsed=28.54s tid=0x000076255c010810 nid=226027 runnable
"G1 Main Marker" os_prio=0 cpu=0.26ms elapsed=28.77s tid=0x00007625f0056230 nid=225989 runnable
"G1 Conc#0" os_prio=0 cpu=2.64ms elapsed=28.77s tid=0x00007625f0057260 nid=225990 runnable
"G1 Conc#1" os_prio=0 cpu=1.32ms elapsed=28.26s tid=0x00007625c0000ce0 nid=226052 runnable
"G1 Conc#2" os_prio=0 cpu=1.22ms elapsed=28.26s tid=0x00007625c00018a0 nid=226053 runnable
"G1 Refine#0" os_prio=0 cpu=0.08ms elapsed=28.76s tid=0x00007625f0100b10 nid=225991 runnable
"G1 Service" os_prio=0 cpu=3.41ms elapsed=28.76s tid=0x00007625f0101b60 nid=225992 runnable
"VM Periodic Task Thread" os_prio=0 cpu=26.17ms elapsed=28.76s tid=0x00007625f011baa0 nid=225993 waiting on condition
JNI global refs: 91, weak refs: 6
Heap
garbage-first heap total reserved 8146944K, committed 49152K, used 25968K [0x000000060ec00000, 0x0000000800000000)
region size 4096K, 6 young (24576K), 1 survivors (4096K)
Metaspace used 31307K, committed 31808K, reserved 1114112K
class space used 3323K, committed 3520K, reserved 1048576K
The following script executed using scala-cli 1.4.0 :
works well with doodle:0.23.0 but crashes with doodle:0.24.0. (I can briefly see the window during less than 1 second)