diff --git a/shard.yml b/shard.yml index b4032a1..1e697ad 100644 --- a/shard.yml +++ b/shard.yml @@ -1,5 +1,5 @@ name: tasker -version: 2.1.1 +version: 2.1.2 crystal: ">= 0.36.1" dependencies: diff --git a/src/tasker/pipeline.cr b/src/tasker/pipeline.cr index 8b52b10..526d34e 100644 --- a/src/tasker/pipeline.cr +++ b/src/tasker/pipeline.cr @@ -81,10 +81,15 @@ class Tasker end # shutdown processing - def stop + def close @in.close end + # check if the pipline is running + def closed? + @in.closed? + end + protected def process_loop loop do return if @in.closed? @@ -97,8 +102,8 @@ class Tasker t2 = Time.monotonic @time = t2 - t1 @chained.each(&.process(output)) + rescue Channel::ClosedError rescue error - return if @in.closed? Log.error(exception: error) { "error in pipeline #{@name}" } end end