Advertencia y abandono de Kotlin / Quasar Fiber

Estoy estudiando Kotlin y Quasar y estoy tratando de hacer el juego "Boom". Creo que mi código es bueno, pero cuando lo ejecuto, da is hogging the CPU or blocking a thread. advertencia o simplemente dejar de fumar, a veces.

¿He hecho algo mal o no?

esencia

Editar: salida completa

  1. Dado que está generando actores pero no los une desde el hilo principal, este último podría salir antes de que el final termine de ejecutarse. Eche un vistazo a LocalActor.join .
  2. Si te unes a ambos actores, tu progtwig se bloqueará cuando uno falle porque el otro estará esperando un post para siempre. Envíe un post de salida al otro actor cuando falle o use una recepción con un time de espera y salga si ocurre un time de espera.
  3. La advertencia es perfectamente normal porque el time de ejecución de Quasar y la JVM todavía están "calentándose" mientras se ejecuta el progtwig, por lo que, por ejemplo, en su rastreo Quasar está realizando operaciones de locking de hilos una sola vez mientras verifica sus annotations suspendibles. Aquí, en cambio, lo obtuve al imprimir en stdout (que es una operación de locking de hebras), presumiblemente porque la JVM no había optimizado la ruta del código aún (probablemente todavía estaba ejecutándola en modo interpretado). Puede desactivar esa advertencia si lo desea con la propiedad del sistema co.paralleluniverse.fibers.detectRunawayFibers .