Em seg., 2 de nov. de 2020 às 05:25, Kyotaro Horiguchi <
horikyota....@gmail.com> escreveu:

> At Mon, 02 Nov 2020 14:33:40 +0900 (JST), Kyotaro Horiguchi <
> horikyota....@gmail.com> wrote in
> > At Mon, 2 Nov 2020 16:22:09 +1300, Thomas Munro <thomas.mu...@gmail.com>
> wrote in
> > > On Mon, Nov 2, 2020 at 1:49 PM Kyotaro Horiguchi
> > > <horikyota....@gmail.com> wrote:
> > > > At Sat, 31 Oct 2020 11:40:53 -0300, Ranier Vilela <
> ranier...@gmail.com> wrote in
> > > > > Per Coverity.
> > > > >
> > > > > If test set->latch against NULL, is why it can be NULL.
> > > > > ResetEvent can dereference NULL.
> > > >
> > > > If the returned event is WL_LATCH_SET, set->latch cannot be NULL. We
> > > > shouldn't inadvertently ignore the unexpected or broken situation.We
> > > > could put Assert instead, but I think that we don't need do something
> > > > here at all since SIGSEGV would be raised at the right location.
> > >
> > > Hmm.  I changed that to support set->latch == NULL, so that you can
> > > use the long lived WES in the rare code paths that call WaitLatch()
> > > without a latch (for example the code I proposed at [1]).  The Windows
> >
> > Ooo.  We don't update epoll events in that case. Ok, I understand
> > WL_LATCH_SET can fire while set->latch == NULL.
> >
> > (I was confused by WaitEventAdjust* asserts set->latch != NULL for
> >  WL_LATCH_SET. Isn't it better if we moved the check on latch from
> >  ModifyWaitEvent() to WaitEventAdjust*()?))
> >
> > > version leaves the event handle of the most recently used latch in
> > > set->handles[n] (because AFAICS there is no way to have a "hole" in
> > > the handles array).  The event can fire while you are waiting on "no
> > > latch".  Perhaps it should be changed to
> > > ResetEvent(set->handles[cur_event->pos + 1])?
> > >
> > > [1]
> https://www.postgresql.org/message-id/flat/CA%2BhUKGK1607VmtrDUHQXrsooU%3Dap4g4R2yaoByWOOA3m8xevUQ%40mail.gmail.com
> >
> > Seems right. Just doing that *seems* to work fine, but somehow I
> > cannot build on Windows for now...
>
> That was caused by a leftover change on config_default.pl I made when
> I tried to enable NLS.
>
> I called SetLatch() during WaitLatch(NULL, ) but that doesn't fire
> WL_LATCH_SET event for me on Windows. (I got it fired on Linux..)  On
> Windows, the latch is detected after exiting the WaitLatch()
> call. Seems like MyLatch of waiter is different from
> peerPGPROC->procLatch.  And... an update for Visual Studio broke my
> environment... I will investigate this further but everything feel
> cumbersome on Windows...
>
I can build.
vc_regress is it enough to test it?

regards,
Ranier Vilela

Reply via email to