bda794d

Bowmap · bowmap.git · Tickets

Branches > main > bda794d > files

Use core.async for async code

Grahp, 2026-10-07

Commit: bda794d56579c8082cdabd0ed2c6bb78440ecc09
Parent: bd9f7f9

3 changed files:

deps.edn modified (view file)

@@ -8,6 +8,7 @@          :exec-fn cognitect.test-runner.api/test}}  :deps  {org.clojure/clojure {:mvn/version "1.13.0-alpha8"}+  org.clojure/core.async {:mvn/version "1.9.865"}   org.clojure/tools.logging {:mvn/version "1.3.1"}   nrepl/nrepl {:mvn/version "1.7.0"}   dev.weavejester/medley {:mvn/version "1.10.0"}

src/net/bowmap/server/network/connection.clj modified (view file)

@@ -1,6 +1,7 @@ (ns net.bowmap.server.network.connection   "A connection to the Minecraft server."   (:require+   [clojure.core.async :refer [io-thread]]    [clojure.spec.alpha :as s]    [clojure.stacktrace :refer [print-stack-trace]]    [clojure.tools.logging :as log]@@ -26,15 +27,15 @@         output-stream (Socket/.getOutputStream socket)         send-queue (LinkedBlockingQueue.)]     (Socket/.setTcpNoDelay socket true)-    (Thread/startVirtualThread-      #(try-         (loop []-           (let [frame (.take send-queue)]-             (streams/write-frame!! frame output-stream)-             (recur)))-         (catch IOException _)-         (finally-           (Socket/.close socket))))+    (io-thread+      (try+        (loop []+          (let [frame (.take send-queue)]+            (streams/write-frame!! frame output-stream)+            (recur)))+        (catch IOException _)+        (finally+          (Socket/.close socket))))     (reify Connection       (send-frame! [_ frame]         (.put send-queue frame))

src/net/bowmap/server/runtime/connections.clj modified (view file)

@@ -1,9 +1,10 @@ (ns net.bowmap.server.runtime.connections   (:require+   [clojure.core.async :refer [io-thread]]    [net.bowmap.server.game.handle :as handle]+   [net.bowmap.server.game.server :as state]    [net.bowmap.server.network.connection :as connection]    [net.bowmap.server.network.server :as server]-   [net.bowmap.server.game.server :as state]    [net.bowmap.server.protocol.packet :as packet]    [net.bowmap.server.protocol.packet-serialization :as serialize]    [net.bowmap.server.protocol.phase :as phase]@@ -42,6 +43,6 @@   [server]   (loop []     (let [connection (server/accept-connection!! server)]-      (Thread/startVirtualThread-        #(handle-connection! connection))+      (io-thread+        (handle-connection! connection))       (recur))))