Latches API on windows

From: Abbas Butt <abbas(dot)butt(at)enterprisedb(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Cc: Marc Linster <marc(dot)linster(at)enterprisedb(dot)com>, "A(dot) Hayee" <hayee(dot)bhatti(at)enterprisedb(dot)com>, Hope Jiang <hope(dot)jiang(at)enterprisedb(dot)com>, Priti Sarode <priti(dot)sarode(at)enterprisedb(dot)com>, Ahsan Hadi <ahsan(dot)hadi(at)enterprisedb(dot)com>
Subject: Latches API on windows
Date: 2017-10-09 13:26:59
Message-ID: CALtH27eeooVpAhOLVno4RRk2h97xM=ihj_q3N0K8zADapKPARg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,
I am working on a contrib module that uses RegisterDynamicBackgroundWorker
API
to create a couple of worker processes. For synchronization between the
background worker processes I am using InitSharedLatch, SetLatch, WaitLatch
APIs.
One of the processes is supposed to wait for the latch, the other is
supposed to set it.
The system works perfectly fine as long as its run on Linux, however when
tried
on Windows, it fails giving the error:
ResetEvent failed: error code 6
Error code 6 means invalid handle. Debugging reveals that the handle
contains
a valid value, however it seems that the handle is not accessible (was not
created)
in the process that is calling ResetEvent.

Debugging the issue lead me to the following comment on top of
InitSharedLatch:

* InitSharedLatch needs to be called in postmaster before forking child
* processes, usually right after allocating the shared memory block
* containing the latch with ShmemInitStruct. (The Unix implementation
* doesn't actually require that, but the Windows one does.)

In my case this is not true, I am calling InitSharedLatch in _PG_init
which gets called at CREATE EXTENSION time.
My question : Is there a way to get the latches API work on windows
the way it is working on Linux?

Best Regards

--
--
*Abbas*
Architect

Ph: 92.334.5100153
Skype ID: gabbasb
www.enterprisedb.co <http://www.enterprisedb.com/>m
<http://www.enterprisedb.com/>

*Follow us on Twitter*
@EnterpriseDB

Visit EnterpriseDB for tutorials, webinars, whitepapers
<http://www.enterprisedb.com/resources-community> and more
<http://www.enterprisedb.com/resources-community>

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Korotkov 2017-10-09 13:27:46 Re: GSoC 2017 : Patch for predicate locking in Gist index
Previous Message Michael Paquier 2017-10-09 12:28:17 Re: On markers of changed data