Skip site navigation (1) Skip section navigation (2)

Re: Win32 semaphore patch

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Qingqing Zhou <zhouqq(at)cs(dot)toronto(dot)edu>
Cc: pgsql-patches(at)postgresql(dot)org
Subject: Re: Win32 semaphore patch
Date: 2006-04-20 16:27:50
Message-ID: 19462.1145550470@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-patches
Qingqing Zhou <zhouqq(at)cs(dot)toronto(dot)edu> writes:
> Attached is a patch for Win32 semaphore reimplementation per discussion
> with Tom and Magnus.

The trickiest part of the sysv and posix implementations is making sure
that any kernel resources represented by the semaphores will go away at
appropriate times.  There are two cases to worry about:

1. Backend crash while postmaster stays alive: postmaster will get to
execute the on_shmem_exit() callback after all the backends are gone,
and that can clean 'em up.

2. postmaster crashes: we'd like the semas to go away automatically when
the last backend goes away.  If this doesn't happen, then there has to
be logic to recycle leftover semas when the postmaster is next started.

Most of the ugliness in sysv_sema.c is because it has to do "manual"
cleanup per #2.

I dunno much about Windows, and it may be that your code is already OK
on this score.  I'm just pointing it out as something that has to be
considered.  Some comments in the code about how this works wouldn't
be a bad idea.

			regards, tom lane

In response to

pgsql-patches by date

Next:From: Magnus HaganderDate: 2006-04-20 18:09:49
Subject: Re: Win32 semaphore patch
Previous:From: Joshua BerkusDate: 2006-04-20 15:13:50
Subject: Re: BUG #2401: spinlocks not available on amd64

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group