Win32 latch implementation revisited
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: PostgreSQL-development <pgsql-hackers@postgreSQL.org>
Cc: Magnus Hagander <magnus@hagander.net>
Date: 2010-09-14T09:56:32Z
Lists: pgsql-hackers
Attachments
- latch-simplify-win32-1.patch (text/x-diff) patch
It just occurred to me that the Windows latch implementation goes through a lot of trouble to dynamically assign the shared Windows event handles to the latches in OwnLatch, but there's really no reason why they can't be statically assigned in InitSharedLatch instead. We have to allocate the same amount of event handles anyway. That makes the implementation a lot simpler, eliminating the shared memory block dedicated to latches altogether, and all the related bookkeeping. We no longer need NumSharedLatches() function anymore either, each InitSharedLatch call can allocate a new event handle directly. It was the separation of InitSharedLatch and OwnLatch steps that made this possible, which is probably why this didn't occur to me earlier. Separating those steps was definitely a good move. Unless someone sees a problem with this, I'll commit the attached patch to do the simplification. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com