From 5240ef3c51f14cf01fa92fd6c468f43ee07620a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20=C3=87elik?= Date: Sun, 6 Oct 2024 01:14:36 +0300 Subject: [PATCH] Change "synchronized" to reentrant lock for virtual-threads --- .../serverless/web/ServerlessAsyncContext.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/ServerlessAsyncContext.java b/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/ServerlessAsyncContext.java index 9cf6e5a86..40b2a456f 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/ServerlessAsyncContext.java +++ b/spring-cloud-function-adapters/spring-cloud-function-serverless-web/src/main/java/org/springframework/cloud/function/serverless/web/ServerlessAsyncContext.java @@ -57,7 +57,7 @@ public class ServerlessAsyncContext implements AsyncContext { private final List dispatchHandlers = new ArrayList<>(); - private static final ReentrantLock globalLock = new ReentrantLock(); + private final ReentrantLock globalLock = new ReentrantLock(); public ServerlessAsyncContext(ServletRequest request, @Nullable ServletResponse response) { @@ -69,7 +69,7 @@ public class ServerlessAsyncContext implements AsyncContext { public void addDispatchHandler(Runnable handler) { Assert.notNull(handler, "Dispatch handler must not be null"); try { - globalLock.lock(); + this.globalLock.lock(); if (this.dispatchedPath == null) { this.dispatchHandlers.add(handler); } @@ -78,7 +78,7 @@ public class ServerlessAsyncContext implements AsyncContext { } } finally { - globalLock.unlock(); + this.globalLock.unlock(); } } @@ -111,12 +111,12 @@ public class ServerlessAsyncContext implements AsyncContext { @Override public void dispatch(@Nullable ServletContext context, String path) { try { - globalLock.lock(); + this.globalLock.lock(); this.dispatchedPath = path; this.dispatchHandlers.forEach(Runnable::run); } finally { - globalLock.unlock(); + this.globalLock.unlock(); } }