summaryrefslogtreecommitdiff
path: root/0065-change-default-subscribe-timeout-to-5min.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-09-03 03:24:28 +0000
committerCoprDistGit <infra@openeuler.org>2024-09-03 03:24:28 +0000
commite45819fcb4a96649a4030db7684f140d5ca46735 (patch)
tree544dac3e30a0448eabdc50add41aa3a18982d9f1 /0065-change-default-subscribe-timeout-to-5min.patch
parent1a71e3afebb4b43be63949dcc8e882fe7643f13b (diff)
automatic import of iSuladopeneuler24.03_LTS
Diffstat (limited to '0065-change-default-subscribe-timeout-to-5min.patch')
-rw-r--r--0065-change-default-subscribe-timeout-to-5min.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/0065-change-default-subscribe-timeout-to-5min.patch b/0065-change-default-subscribe-timeout-to-5min.patch
new file mode 100644
index 0000000..7e4d067
--- /dev/null
+++ b/0065-change-default-subscribe-timeout-to-5min.patch
@@ -0,0 +1,76 @@
+From 5c89c23f5e0de06a17a9263114430674221a1ee0 Mon Sep 17 00:00:00 2001
+From: jikai <jikai11@huawei.com>
+Date: Wed, 17 Apr 2024 06:59:08 +0000
+Subject: [PATCH 65/69] change default subscribe timeout to 5min
+
+Signed-off-by: jikai <jikai11@huawei.com>
+---
+ src/daemon/mailbox/message_queue.c | 4 ++--
+ src/utils/cutils/blocking_queue.c | 13 +++++++------
+ src/utils/cutils/blocking_queue.h | 2 +-
+ 3 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/src/daemon/mailbox/message_queue.c b/src/daemon/mailbox/message_queue.c
+index 7e53301e..699ea0bc 100644
+--- a/src/daemon/mailbox/message_queue.c
++++ b/src/daemon/mailbox/message_queue.c
+@@ -20,8 +20,8 @@
+
+ #include "utils.h"
+
+-// default set subscriber timeout to 1000ms, maybe could be configured later
+-const int64_t subscribe_timeout = 1000;
++// default set subscriber timeout to 300s, maybe could be configured later
++const int64_t subscribe_timeout = 300;
+
+ static void message_queue_subscriber_free(void *key, void *val)
+ {
+diff --git a/src/utils/cutils/blocking_queue.c b/src/utils/cutils/blocking_queue.c
+index 7c9c5f50..9bdb2ca3 100644
+--- a/src/utils/cutils/blocking_queue.c
++++ b/src/utils/cutils/blocking_queue.c
+@@ -55,12 +55,11 @@ blocking_queue *blocking_queue_create(int64_t timeout, void (*release)(void *))
+ queue->release = release;
+
+ if (timeout >= 0) {
+- queue->timeout.tv_sec = timeout / (Time_Second / Time_Milli);
+- queue->timeout.tv_nsec = (timeout % (Time_Second / Time_Milli) ) * Time_Milli;
++ queue->timeout = timeout;
+ } else {
+- queue->timeout.tv_sec = -1;
++ queue->timeout = -1;
+ }
+-
++
+ return isula_transfer_ptr(queue);
+ }
+
+@@ -112,8 +111,10 @@ int blocking_queue_pop(blocking_queue *queue, void **data) {
+ lock = &queue->lock;
+
+ while (queue->head->next == NULL) {
+- if (queue->timeout.tv_sec >= 0) {
+- int ret = pthread_cond_timedwait(&queue->not_empty, &queue->lock, &queue->timeout);
++ if (queue->timeout >= 0) {
++ struct timespec timeout = { 0 };
++ timeout.tv_sec = queue->timeout + time(NULL);
++ int ret = pthread_cond_timedwait(&queue->not_empty, &queue->lock, &timeout);
+ if (ret != 0) {
+ if (ret != ETIMEDOUT) {
+ ERROR("Failed to wait cond");
+diff --git a/src/utils/cutils/blocking_queue.h b/src/utils/cutils/blocking_queue.h
+index 1c52a9d3..257779c3 100644
+--- a/src/utils/cutils/blocking_queue.h
++++ b/src/utils/cutils/blocking_queue.h
+@@ -37,7 +37,7 @@ typedef struct blocking_queue {
+ blocking_node *head;
+ blocking_node *tail;
+ pthread_mutex_t lock;
+- struct timespec timeout;
++ int64_t timeout;
+ pthread_cond_t not_empty;
+ void (*release)(void *);
+ } blocking_queue;
+--
+2.34.1
+