Zdenek Kotala <[EMAIL PROTECTED]> writes:
> I'm looking into PG/PLSql code and following code in 
> plpgsql_call_handler looks strange:

>          /* Find or compile the function */
>          func = plpgsql_compile(fcinfo, false);

>          /* Mark the function as busy, so it can't be deleted from under 
> us */
>          func->use_count++;


> I don't have deep knowledge about this part of code. But what happen if 
> in parallel execution "func" will be deleted between these two lines?

This is not a race condition because the backend is single-threaded.

(Hint: what it actually means by "function" is "the plpgsql function
cache entry I just found or built".)

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to