>> In Async_Listen(): change
>> 'heap_close(lRel, ExclusiveLock);' for 'heap_close(lRel, NoLock);'.
>>
>
> This solution is pretty ugly, though, because we allow people to
> execute LISTEN/UNLISTEN in transaction blocks, which means that the
> ExclusiveLock could be held for quite some time. Not only is that bad
> for performance but it poses significant risks of deadlocks.
>
True, I had not considered this.
> Comments? Have I missed anything?
>
As far as I can tell it seems fine.
Thanks a lot for your input!
Laurent Birtz