From 65c11a5e0b10b497da1be63e80e595c5a85fa126 Mon Sep 17 00:00:00 2001 From: Julien Portalier Date: Thu, 20 Jun 2024 14:06:38 +0200 Subject: [PATCH] Add Fiber#status (refs #16) --- src/core_ext/fiber.cr | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/core_ext/fiber.cr b/src/core_ext/fiber.cr index 6a99ba7..d4fd70f 100644 --- a/src/core_ext/fiber.cr +++ b/src/core_ext/fiber.cr @@ -1,4 +1,10 @@ class Fiber + enum Status + Suspended + Running + Dead + end + def self.current : Fiber Thread.current.current_fiber end @@ -71,6 +77,18 @@ class Fiber # # @execution_context = ExecutionContext.current # <= infinite recursion # end + def status : Status + if @alive + if @context.@resumable == 1 + Status::Suspended + else + Status::Running + end + else + Status::Dead + end + end + def enqueue : Nil execution_context.enqueue(self) end