Skip to content

2.1.1

Latest

Choose a tag to compare

@grepjava grepjava released this 19 Oct 02:19
· 7 commits to main since this release

Fixes for 2.1.0, which does not build on Linux: use 2.1.1.

  • Garuda builds on Linux again. The process supervisor's code (--reload,
    the reload log) still matched Vega's ShardEvent and ShardWatchAction as
    enums; in Vega 1.0 they are structs. 2.1.0 built on macOS and Windows, which
    do not compile that code, and failed on Linux.

  • --blocking-queue refuses again. In Vega 1.0 Runtime.blocking always
    waits its turn, and Runtime.tryBlocking is the call that refuses. 2.1.0's
    app.offload routes called blocking, so past --blocking-queue they
    queued instead of answering 503; they call tryBlocking now.

  • A handler's own Runtime.blocking no longer answers 503 past
    --blocking-queue, as it did in 2.0: it waits for a thread. Work that should
    be refused calls Runtime.tryBlocking and throws BlockingQueueFull() when
    it returns nil:

    guard let hash = try await Runtime.tryBlocking({ try expensiveHash(password) }) else {
        throw BlockingQueueFull()
    }
  • The tests build with Swift 6.4 on macOS, whose Darwin overlay makes
    system unavailable, and a TLS test no longer writes its request from a
    pointer that outlived the string it came from.

Install with .package(url: "https://github.com/grepjava/garuda.git", from: "2.1.1"). Runs on Vega 1.0.0 and vega-db 0.3.0. What changed from 2.0 to 2.1 is in RELEASE.md.