mirror of
https://github.com/postgres/postgres.git
synced 2025-07-14 08:21:07 +03:00
Move resowner from common JitContext to LLVM specific
Only the LLVM specific code uses it since resource owners were made
extensible in commit b8bff07daa
. This is
new in v17, so backpatch there to keep the branches from diverging
just yet.
Author: Andreas Karlsson <andreas@proxel.se>
Discussion: https://www.postgresql.org/message-id/fd3a2a00-6605-4e30-a118-48418b478e6e@proxel.se
This commit is contained in:
@ -249,7 +249,7 @@ llvm_create_context(int jitFlags)
|
||||
context->base.flags = jitFlags;
|
||||
|
||||
/* ensure cleanup */
|
||||
context->base.resowner = CurrentResourceOwner;
|
||||
context->resowner = CurrentResourceOwner;
|
||||
ResourceOwnerRememberJIT(CurrentResourceOwner, context);
|
||||
|
||||
llvm_jit_context_in_use_count++;
|
||||
@ -323,8 +323,8 @@ llvm_release_context(JitContext *context)
|
||||
|
||||
llvm_leave_fatal_on_oom();
|
||||
|
||||
if (context->resowner)
|
||||
ResourceOwnerForgetJIT(context->resowner, llvm_jit_context);
|
||||
if (llvm_jit_context->resowner)
|
||||
ResourceOwnerForgetJIT(llvm_jit_context->resowner, llvm_jit_context);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1372,8 +1372,8 @@ llvm_error_message(LLVMErrorRef error)
|
||||
static void
|
||||
ResOwnerReleaseJitContext(Datum res)
|
||||
{
|
||||
JitContext *context = (JitContext *) DatumGetPointer(res);
|
||||
LLVMJitContext *context = (LLVMJitContext *) DatumGetPointer(res);
|
||||
|
||||
context->resowner = NULL;
|
||||
jit_release_context(context);
|
||||
jit_release_context(&context->base);
|
||||
}
|
||||
|
@ -59,8 +59,6 @@ typedef struct JitContext
|
||||
/* see PGJIT_* above */
|
||||
int flags;
|
||||
|
||||
ResourceOwner resowner;
|
||||
|
||||
JitInstrumentation instr;
|
||||
} JitContext;
|
||||
|
||||
|
@ -39,6 +39,9 @@ typedef struct LLVMJitContext
|
||||
{
|
||||
JitContext base;
|
||||
|
||||
/* used to ensure cleanup of context */
|
||||
ResourceOwner resowner;
|
||||
|
||||
/* number of modules created */
|
||||
size_t module_generation;
|
||||
|
||||
|
Reference in New Issue
Block a user