mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 00:52:02 +00:00
Merge pull request #18715 from ClickHouse/try-fix-tsan-forremote-query-executor
Use relaxed for flag in RemoteQueryExecutorReadContext.
This commit is contained in:
commit
a20c4cce76
@ -225,7 +225,7 @@ std::variant<Block, int> RemoteQueryExecutor::read(std::unique_ptr<ReadContext>
|
|||||||
if (!read_context->resumeRoutine())
|
if (!read_context->resumeRoutine())
|
||||||
return Block();
|
return Block();
|
||||||
|
|
||||||
if (read_context->is_read_in_progress)
|
if (read_context->is_read_in_progress.load(std::memory_order_relaxed))
|
||||||
{
|
{
|
||||||
read_context->setTimer();
|
read_context->setTimer();
|
||||||
return read_context->epoll_fd;
|
return read_context->epoll_fd;
|
||||||
|
@ -22,7 +22,7 @@ class RemoteQueryExecutorReadContext
|
|||||||
public:
|
public:
|
||||||
using Self = RemoteQueryExecutorReadContext;
|
using Self = RemoteQueryExecutorReadContext;
|
||||||
|
|
||||||
bool is_read_in_progress = false;
|
std::atomic_bool is_read_in_progress = false;
|
||||||
Packet packet;
|
Packet packet;
|
||||||
|
|
||||||
std::exception_ptr exception;
|
std::exception_ptr exception;
|
||||||
@ -162,7 +162,7 @@ public:
|
|||||||
|
|
||||||
bool resumeRoutine()
|
bool resumeRoutine()
|
||||||
{
|
{
|
||||||
if (is_read_in_progress && !checkTimeout())
|
if (is_read_in_progress.load(std::memory_order_relaxed) && !checkTimeout())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -226,9 +226,9 @@ public:
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
read_context.is_read_in_progress = true;
|
read_context.is_read_in_progress.store(true, std::memory_order_relaxed);
|
||||||
fiber = std::move(fiber).resume();
|
fiber = std::move(fiber).resume();
|
||||||
read_context.is_read_in_progress = false;
|
read_context.is_read_in_progress.store(false, std::memory_order_relaxed);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user