mirror of
https://github.com/postgres/postgres.git
synced 2025-08-06 18:42:54 +03:00
Create an internal semaphore API that is not tied to SysV semaphores.
As proof of concept, provide an alternate implementation based on POSIX semaphores. Also push the SysV shared-memory implementation into a separate file so that it can be replaced conveniently.
This commit is contained in:
24
configure.in
24
configure.in
@@ -1,5 +1,5 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl $Header: /cvsroot/pgsql/configure.in,v 1.183 2002/04/26 19:47:35 tgl Exp $
|
||||
dnl $Header: /cvsroot/pgsql/configure.in,v 1.184 2002/05/05 00:03:28 tgl Exp $
|
||||
|
||||
dnl Developers, please strive to achieve this order:
|
||||
dnl
|
||||
@@ -1168,6 +1168,26 @@ AC_CHECK_TYPES([sig_atomic_t], [], [], [#include <signal.h>])
|
||||
PGAC_FUNC_POSIX_SIGNALS
|
||||
|
||||
|
||||
# Select semaphore implementation type.
|
||||
if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then
|
||||
AC_DEFINE(USE_NAMED_POSIX_SEMAPHORES, 1, [Define to select named POSIX semaphores])
|
||||
SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
|
||||
else
|
||||
if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then
|
||||
AC_DEFINE(USE_UNNAMED_POSIX_SEMAPHORES, 1, [Define to select unnamed POSIX semaphores])
|
||||
SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
|
||||
else
|
||||
AC_DEFINE(USE_SYSV_SEMAPHORES, 1, [Define to select SysV-style semaphores])
|
||||
SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# Select shared-memory implementation type.
|
||||
AC_DEFINE(USE_SYSV_SHARED_MEMORY, 1, [Define to select SysV-style shared memory])
|
||||
SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c"
|
||||
|
||||
|
||||
if test "$enable_nls" = yes ; then
|
||||
PGAC_CHECK_GETTEXT
|
||||
fi
|
||||
@@ -1222,6 +1242,8 @@ AC_CONFIG_FILES([GNUmakefile src/Makefile.global])
|
||||
|
||||
AC_CONFIG_LINKS([
|
||||
src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c
|
||||
src/backend/port/pg_sema.c:${SEMA_IMPLEMENTATION}
|
||||
src/backend/port/pg_shmem.c:${SHMEM_IMPLEMENTATION}
|
||||
src/include/dynloader.h:src/backend/port/dynloader/${template}.h
|
||||
src/include/pg_config_os.h:src/include/port/${template}.h
|
||||
src/Makefile.port:src/makefiles/Makefile.${template}
|
||||
|
Reference in New Issue
Block a user