Skip to content

Commit

Permalink
devel/ruby-async: update to 2.17.0
Browse files Browse the repository at this point in the history
2.15.0 (2024-08-04)

* Allow transient tasks to exit completely. (#336)

2.15.1 (2024-08-07)

* Allow transient tasks to exit gracefully. (#337)

2.15.2 (2024-08-07)

* Transient tasks should only be stopped once. (#338)

2.15.3 (2024-08-08)

* Ensure that defer_stop resets state. (#339)

2.16.0 (2024-08-23)

Better Handling of Async and Sync in Nested Fibers

Interleaving bare fibers within Async and Sync blocks should not cause
problems, but it presents a number of issues in the current implementation.
Tracking the parent-child relationship between tasks, when they are
interleaved with bare fibers, is difficult.  The current implementation
assumes that if there is no parent task, then it should create a new
reactor.  This is not always the case, as the parent task might not be
visible due to nested Fibers.  As a result, Async will create a new reactor,
trying to stop the existing one, causing major internal consistency issues.

I encountered this issue when trying to use Async within a streaming
response in Rails.  The protocol-rack uses a normal fiber to wrap streaming
responses, and if you try to use Async within it, it will create a new
reactor, causing the server to lock up.

Ideally, Async and Sync helpers should work when any Fiber.scheduler is
defined.  Right now, it's unrealistic to expect Async::Task to work in any
scheduler, but at the very least, the following should work:

    reactor = Async::Reactor.new # internally calls Fiber.set_scheduler

    # This should run in the above reactor, rather than creating a new one.
    Async do
      puts "Hello World"
    end

In order to do this, bare Async and Sync blocks should use Fiber.scheduler
as a parent if possible.

See #340 for more details.

2.16.1 (2024-08-26)

* Add timeout to timeout error message.

2.17.0 (2024-09-05)

* Introduce Async::Queue#push and Async::Queue#pop for compatibility with
  ::Queue.
  • Loading branch information
taca committed Sep 18, 2024
1 parent 5e0d343 commit dc1dea4
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 8 deletions.
6 changes: 3 additions & 3 deletions devel/ruby-async/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# $NetBSD: Makefile,v 1.26 2024/07/20 15:20:07 taca Exp $
# $NetBSD: Makefile,v 1.27 2024/09/18 14:59:00 taca Exp $

DISTNAME= async-2.14.2
DISTNAME= async-2.17.0
CATEGORIES= devel

MAINTAINER= [email protected]
Expand All @@ -10,7 +10,7 @@ LICENSE= mit

USE_LANGUAGES= # none

DEPENDS+= ${RUBY_PKGPREFIX}-console>=1.25.2<2:../../devel/ruby-console
DEPENDS+= ${RUBY_PKGPREFIX}-console>=1.26<2:../../devel/ruby-console
DEPENDS+= ${RUBY_PKGPREFIX}-io-event>=1.6.5<2:../../devel/ruby-io-event
DEPENDS+= ${RUBY_PKGPREFIX}-fiber-annotation>=0:../../devel/ruby-fiber-annotation

Expand Down
3 changes: 2 additions & 1 deletion devel/ruby-async/PLIST
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.5 2024/03/05 13:21:29 taca Exp $
@comment $NetBSD: PLIST,v 1.6 2024/09/18 14:59:00 taca Exp $
${GEM_HOME}/cache/${GEM_NAME}.gem
${GEM_LIBDIR}/lib/async.rb
${GEM_LIBDIR}/lib/async/barrier.md
Expand Down Expand Up @@ -26,4 +26,5 @@ ${GEM_LIBDIR}/lib/kernel/async.rb
${GEM_LIBDIR}/lib/kernel/sync.rb
${GEM_LIBDIR}/license.md
${GEM_LIBDIR}/readme.md
${GEM_LIBDIR}/releases.md
${GEM_HOME}/specifications/${GEM_NAME}.gemspec
8 changes: 4 additions & 4 deletions devel/ruby-async/distinfo
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
$NetBSD: distinfo,v 1.23 2024/07/20 15:20:07 taca Exp $
$NetBSD: distinfo,v 1.24 2024/09/18 14:59:00 taca Exp $

BLAKE2s (async-2.14.2.gem) = fe62c7ac2b17090c937ae42022f3c077bc7d2acbce313372943103a7f3f4ba51
SHA512 (async-2.14.2.gem) = fa65def5d4aef62d3c88d8cecda1f08ba0200417d99ce22c3b8da0ca714129246030060e718dc62f3cfe61572319c9adbb2ffa956b3072736ccef7220dc5e5d4
Size (async-2.14.2.gem) = 30208 bytes
BLAKE2s (async-2.17.0.gem) = 68005ca0306c8decd9b0e5663243cec576617006d3b52f0af1df02d56167ddd1
SHA512 (async-2.17.0.gem) = 4b689c8c073773d7856f0ef57f4d1bab568de727f3339c4162fdff8cdc01c6d6d18c7570148371d85f1b5bb5f526a8a4509feafaf2a3114679dfc8f18b609d50
Size (async-2.17.0.gem) = 31232 bytes

0 comments on commit dc1dea4

Please sign in to comment.