From 71d5891b0695fa0750cf412133a63b145934e7e7 Mon Sep 17 00:00:00 2001
From: zagaj <m.zagajewska@gmail.com>
Date: Mon, 22 Apr 2024 20:48:13 +0200
Subject: [PATCH] fix: do not defer events

---
 src/DatabaseConnection.php |  5 +----
 src/EventDispatcher.php    |  4 ++--
 src/LlamaCppClient.php     |  4 ++--
 src/Session.php            | 11 ++++-------
 4 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/src/DatabaseConnection.php b/src/DatabaseConnection.php
index ef6fd2b0..fe3be9b8 100644
--- a/src/DatabaseConnection.php
+++ b/src/DatabaseConnection.php
@@ -10,7 +10,6 @@ use PDOStatement;
 use Psr\Log\LoggerInterface;
 use Swoole\Database\PDOProxy;
 use Swoole\Database\PDOStatementProxy;
-use Swoole\Event;
 
 readonly class DatabaseConnection implements Connection
 {
@@ -38,9 +37,7 @@ readonly class DatabaseConnection implements Connection
 
     public function __destruct()
     {
-        Event::defer(function (): void {
-            $this->databaseConnectionPoolRepository->putConnection($this->connectionPoolName, $this->pdo);
-        });
+        $this->databaseConnectionPoolRepository->putConnection($this->connectionPoolName, $this->pdo);
     }
 
     public function beginTransaction(): void
diff --git a/src/EventDispatcher.php b/src/EventDispatcher.php
index f1f5082c..42fe2006 100644
--- a/src/EventDispatcher.php
+++ b/src/EventDispatcher.php
@@ -8,8 +8,8 @@ use Distantmagic\Resonance\Attribute\Singleton;
 use Distantmagic\SwooleFuture\SwooleFuture;
 use Distantmagic\SwooleFuture\SwooleFutureResult;
 use Psr\Log\LoggerInterface;
-use Swoole\Event;
 
+use function Distantmagic\Resonance\helpers\coroutineMustGo;
 use function Swoole\Coroutine\batch;
 
 #[Singleton(provides: EventDispatcherInterface::class)]
@@ -31,7 +31,7 @@ readonly class EventDispatcher implements EventDispatcherInterface
 
     public function dispatch(object $event): void
     {
-        Event::defer(function () use ($event): void {
+        coroutineMustGo(function () use ($event): void {
             $this->doDispatch($event);
         });
     }
diff --git a/src/LlamaCppClient.php b/src/LlamaCppClient.php
index d93cf679..289fcc97 100644
--- a/src/LlamaCppClient.php
+++ b/src/LlamaCppClient.php
@@ -29,7 +29,7 @@ readonly class LlamaCppClient implements LlamaCppClientInterface
 
     public function generateCompletion(
         LlamaCppCompletionRequest $request,
-        int $timeout = 3600,
+        int $timeout = 10800,
     ): LlamaCppCompletionIterator {
         $serializedRequest = $this->jsonSerializer->serialize($request->toJsonSerializable($this->llmChatHistoryRenderer));
         $responseChunks = $this->streamResponse($serializedRequest, '/completion', $timeout);
@@ -80,7 +80,7 @@ readonly class LlamaCppClient implements LlamaCppClientInterface
      */
     public function generateInfill(
         LlamaCppInfillRequest $request,
-        int $timeout = 3600,
+        int $timeout = 10800,
     ): Generator {
         $serializedRequest = $this->jsonSerializer->serialize($request);
         $responseChunks = $this->streamResponse($serializedRequest, '/infill', $timeout);
diff --git a/src/Session.php b/src/Session.php
index 889247e6..b1011005 100644
--- a/src/Session.php
+++ b/src/Session.php
@@ -6,7 +6,6 @@ namespace Distantmagic\Resonance;
 
 use Ds\Map;
 use Redis;
-use Swoole\Event;
 
 readonly class Session
 {
@@ -37,12 +36,10 @@ readonly class Session
 
     public function __destruct()
     {
-        Event::defer(function (): void {
-            $this->redisConnectionPoolRepository->putConnection(
-                $this->sessionConfiguration->redisConnectionPool,
-                $this->redis,
-            );
-        });
+        $this->redisConnectionPoolRepository->putConnection(
+            $this->sessionConfiguration->redisConnectionPool,
+            $this->redis,
+        );
     }
 
     public function persist(): void
-- 
GitLab