diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/shared/Database/DatabaseWorkerPool.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/shared/Database/DatabaseWorkerPool.h b/src/server/shared/Database/DatabaseWorkerPool.h index a43d4c9c683..18797b6b12a 100644 --- a/src/server/shared/Database/DatabaseWorkerPool.h +++ b/src/server/shared/Database/DatabaseWorkerPool.h @@ -297,9 +297,10 @@ class DatabaseWorkerPool QueryResultFuture AsyncQuery(const char* sql) { BasicStatementTask* task = new BasicStatementTask(sql, true); + // Store future result before enqueueing - task might get already processed and deleted before returning from this method QueryResultFuture result = task->GetFuture(); Enqueue(task); - return result; //! Actual return value has no use yet + return result; } //! Enqueues a query in string format -with variable args- that will set the value of the QueryResultFuture return object as soon as the query is executed. @@ -321,6 +322,7 @@ class DatabaseWorkerPool PreparedQueryResultFuture AsyncQuery(PreparedStatement* stmt) { PreparedStatementTask* task = new PreparedStatementTask(stmt, true); + // Store future result before enqueueing - task might get already processed and deleted before returning from this method PreparedQueryResultFuture result = task->GetFuture(); Enqueue(task); return result; @@ -333,6 +335,7 @@ class DatabaseWorkerPool QueryResultHolderFuture DelayQueryHolder(SQLQueryHolder* holder) { SQLQueryHolderTask* task = new SQLQueryHolderTask(holder); + // Store future result before enqueueing - task might get already processed and deleted before returning from this method QueryResultHolderFuture result = task->GetFuture(); Enqueue(task); return result; |