View Single Post

   
  #3 (permalink)  
Old 04-12-2008, 08:39 AM
Zdenek Kotala
 
Posts: n/a
Default Re: race condition in pgplsql call handler?

Tom Lane wrote:
> Zdenek Kotala <Zdenek.Kotala@Sun.COM> 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 majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

Reply With Quote