Go to file
Bruce Momjian 978c03f9cf attached is a patch that makes SysV semaphore emulation
using POSIX semaphores more robust on Darwin 1.2/Mac OS X
Public Beta.  this is for the version of 7.1 available
via anon cvs as of Jan 14 2001 14:00 PST.

since the semaphores and shared memory created by this
emulator are shared with the backends via fork(), their
persistent names are not necessary.  removing their
names with shm_unlink() and sem_unlink() after creation
obviates the need for any "ipcclean" function.  further,
without these changes, the shared memory (and, therefore,
the semaphores) will not be re-initialized/re-created after
the first execution of the postmaster, until reboot
or until some (non-existent) ipcclean function is executed.

this patch does the following:

   1) if the shared memory segment "SysV_Sem_Info" already
      existed, it is cleaned up.  it shouldn't be there anyways.

   2) the real indicator for whether the shared memory/semaphore
      emulator has been initialized is if "SemInfo" has been
      initialized.  the shared memory and semaphores must be
      initialized regardless of whether there was a garbage shared
      memory segment lying around.

   3) the shared memory segment "SysV_Sem_Info" is created with "O_EXCL"
      to catch the case where two postmasters might be starting
      simultaneously, so they don't both end up with the same shared
      memory (one will fail).  note that this can't be done with the
      semaphores because Darwin 1.2 has a bug where attempting to
      open an existing semaphore with "O_EXCL" set will ruin the
      semaphore until the next reboot.

   4) the shared memory segment "SysV_Sem_Info" is unlinked after
      it is created.  it will then exist without a name until the
      postmaster and all backend children exit.
   5) all semaphores are unlinked after they are created.  they'll
      then exist without names until the postmaster and all backend
      children exit.

-michael thornburgh, zenomt@armory.com
2001-01-17 22:11:19 +00:00
ChangeLogs check one last time for any erros ... 2001-01-13 03:17:05 +00:00
config Make checks for global variables (sys_nerr, timezone) safe against getting 2001-01-10 17:07:18 +00:00
contrib Show intarray contrib module in contrib/README and Makefile. 2001-01-15 22:20:00 +00:00
doc There are misprints in postgres doc., in : 2001-01-17 16:34:34 +00:00
src attached is a patch that makes SysV semaphore emulation 2001-01-17 22:11:19 +00:00
aclocal.m4 Add some configure checks for DocBook and related tools. With a somewhat 2000-11-05 21:04:07 +00:00
configure Make checks for global variables (sys_nerr, timezone) safe against getting 2001-01-10 17:07:18 +00:00
configure.in Add configure check for sys_nerr, to end all discussions. 2001-01-09 18:40:15 +00:00
COPYRIGHT Update copyright file. 2000-01-29 08:53:10 +00:00
GNUmakefile.in Use more portable syntax for 'find'. 2001-01-06 21:24:01 +00:00
HISTORY check one last time for any erros ... 2001-01-13 03:17:05 +00:00
INSTALL Adjust file names. 2001-01-15 21:17:27 +00:00
Makefile Fix unportable use of '!' in shell commands. 2000-12-30 00:24:09 +00:00
README check one last time for any erros ... 2001-01-13 03:17:05 +00:00
register.txt Updates for 7.1 branding. 2000-12-18 16:30:07 +00:00

PostgreSQL Data Base Management System (formerly known as Postgres, then
as Postgres95).
  
This directory contains the development version of 7.1 of the
PostgreSQL database server.  The server is not ANSI SQL compliant, but
it gets closer with every release.  After you unzip and untar the
distribution file, look at file INSTALL for the installation notes and
file HISTORY for the changes.

The latest version of this software may be obtained at
ftp://ftp.postgresql.org/pub/.  For more information look at our WWW
home page located at http://www.postgreSQL.org/.

PostgreSQL is not public domain software.  It is copyrighted by the
University of California but may be used according to the licensing
terms of the the copyright below:

------------------------------------------------------------------------

POSTGRES95 Data Base Management System (formerly known as Postgres, then
as Postgres95).

Copyright (c) 1994-7 Regents of the University of California

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this
paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.