From 7aa563b2da15424e559f1156e08ec6d60ff0692f Mon Sep 17 00:00:00 2001 From: Richard Li Date: Fri, 25 Oct 2024 10:41:55 -0700 Subject: [PATCH 1/4] Break out of loop when context process has started --- .../bugfix-b18a6b61-e1e9-42dd-952d-7c32ea7a3a19.json | 4 ++++ .../services/amazonq/project/ProjectContextProvider.kt | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 .changes/next-release/bugfix-b18a6b61-e1e9-42dd-952d-7c32ea7a3a19.json diff --git a/.changes/next-release/bugfix-b18a6b61-e1e9-42dd-952d-7c32ea7a3a19.json b/.changes/next-release/bugfix-b18a6b61-e1e9-42dd-952d-7c32ea7a3a19.json new file mode 100644 index 00000000000..40a96a0e109 --- /dev/null +++ b/.changes/next-release/bugfix-b18a6b61-e1e9-42dd-952d-7c32ea7a3a19.json @@ -0,0 +1,4 @@ +{ + "type" : "bugfix", + "description" : "Fix pointless busy loop in Amazon Q wasting CPU cycles (#5000)" +} diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt index bf82e0bcdf3..a5614db094c 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt @@ -55,7 +55,7 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En initAndIndex() break } else { - yield() + break } } } From e40ac485cd1b204a4b4edf7624dbe4db268dcacd Mon Sep 17 00:00:00 2001 From: Richard Li Date: Mon, 28 Oct 2024 09:42:10 -0700 Subject: [PATCH 2/4] lint --- .../amazonq/project/ProjectContextProvider.kt | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt index a5614db094c..59b725a8911 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt @@ -21,7 +21,6 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeout -import kotlinx.coroutines.yield import software.aws.toolkits.core.utils.debug import software.aws.toolkits.core.utils.error import software.aws.toolkits.core.utils.getLogger @@ -48,15 +47,10 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En return@launch } - while (true) { - if (encoderServer.isNodeProcessRunning()) { - // TODO: need better solution for this - delay(10000) - initAndIndex() - break - } else { - break - } + while (!encoderServer.isNodeProcessRunning()) { + // TODO: need better solution for this + delay(10000) + initAndIndex() } } } From d33a940be40f2d9d4cfbb381282c886bccaee421 Mon Sep 17 00:00:00 2001 From: Richard Li Date: Mon, 28 Oct 2024 10:02:24 -0700 Subject: [PATCH 3/4] lint --- .../amazonq/project/ProjectContextProvider.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt index 59b725a8911..4d4b92a91d4 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt @@ -47,10 +47,16 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En return@launch } - while (!encoderServer.isNodeProcessRunning()) { - // TODO: need better solution for this - delay(10000) - initAndIndex() + // TODO: need better solution for this + @Suppress("LoopWithTooManyJumpStatements") + while (true) { + if (encoderServer.isNodeProcessRunning()) { + delay(10000) + initAndIndex() + break + } else { + break + } } } } From 1048cbac49dd06066eefe5d34efc49394b55d9d7 Mon Sep 17 00:00:00 2001 From: Richard Li Date: Mon, 28 Oct 2024 10:09:25 -0700 Subject: [PATCH 4/4] should not break --- .../services/amazonq/project/ProjectContextProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt index 4d4b92a91d4..2a3f4a19e48 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt @@ -55,7 +55,7 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En initAndIndex() break } else { - break + delay(10000) } } }