Tom Lane wrote:
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.

I see. Each backend has own function cache and use_count is for handle recursion usage. Are my assumption correct?

                thanks Zdenek

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to