!5940 修复多个session间隔执行select for update wait X sec,等待的预期时间不一致的问题

Merge pull request !5940 from cchen676/240710master
This commit is contained in:
opengauss_bot
2024-08-05 09:11:11 +00:00
committed by Gitee
7 changed files with 38 additions and 4 deletions

View File

@ -173,6 +173,7 @@ extern int gs_signal_canceltimer(void);
extern int gs_signal_deletetimer(void);
extern void gs_signal_monitor_startup(void);
extern void gs_signal_get_timer(struct timeval* timeval);
#ifdef WIN32
#define pgwin32_dispatch_queued_signals gs_signal_handle

View File

@ -2800,6 +2800,7 @@ typedef struct knl_t_storage_context {
volatile bool lockwait_timeout_active;
volatile int deadlock_state;
volatile bool cancel_from_timeout;
struct timeval timer_continued;
/* timeout_start_time is set when log_lock_waits is true */
TimestampTz timeout_start_time;
/* statement_fin_time is valid only if statement_timeout_active is true */

View File

@ -558,7 +558,7 @@ extern bool enable_query_plan_sig_alarm(int delayms);
extern bool disable_session_sig_alarm(void);
extern bool disable_idle_in_transaction_session_sig_alarm(void);
extern bool disable_sig_alarm(bool is_statement_timeout);
extern bool disable_sig_alarm(bool is_statement_timeout, int waitSec = 0);
extern bool pause_sig_alarm(bool is_statement_timeout);
extern bool resume_sig_alarm(bool is_statement_timeout);
extern void handle_sig_alarm(SIGNAL_ARGS);