From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andrew Chernow <ac(at)esilo(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: libpq-events windows gotcha |
Date: | 2008-11-13 16:55:51 |
Message-ID: | 4711.1226595351@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Andrew Chernow <ac(at)esilo(dot)com> writes:
>> Here are the options we see:
>>
>> 1. PQregisterEventProc returns a handle, synchronized counter
>> incremented by libpq. A small table could map handle value to proc
>> address, so register always returns the same handle for a provided
>> eventproc. Only register would take an eventproc, instanceData
>> functions would take this magical handle.
>>
>> 2. string key, has collision issues (already been ruled out)
>>
>> 3. have implementors return a static variable address (doesn't seem all
>> that different from returning a static funcaddr)
>>
>> 4. what we do now, but document loudly that PGEventProc must be static.
>> If it can't be referenced outside the DLL directly then the issue can't
>> arise. If you need the function address for calls to PQinstanceData, an
>> implementor can create a public function that returns their private
>> PGEventProc address.
> Do you have a preference form the list above, or an another idea? If
> not, we would probably implement #1. Although, the simplest thing is #4
> which leaves everything as is and updates the sgml docs with a strong
> warning to implementors.
I think #1 is mostly going to complicate life for both libpq and callers
--- libpq has to deal with generating the handles (threading issues
here) and callers have to remember them somewhere. And it's not even
clear to me that it fixes the problem: wouldn't you get two different
handles if you supplied the internal and external addresses of an
eventproc?
On the whole I vote for #4 out of these. I was just wondering whether
there were any better alternatives, and it seems there's not.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-11-13 17:07:09 | pg_filedump for CVS HEAD |
Previous Message | Andrew Chernow | 2008-11-13 16:34:14 | Re: libpq-events windows gotcha |