mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +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:
40
configure
vendored
40
configure
vendored
@ -15664,6 +15664,42 @@ HAVE_POSIX_SIGNALS=$pgac_cv_func_posix_signals
|
||||
|
||||
|
||||
|
||||
# Select semaphore implementation type.
|
||||
if test x"$USE_NAMED_POSIX_SEMAPHORES" = x"1" ; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define USE_NAMED_POSIX_SEMAPHORES 1
|
||||
_ACEOF
|
||||
|
||||
SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
|
||||
else
|
||||
if test x"$USE_UNNAMED_POSIX_SEMAPHORES" = x"1" ; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define USE_UNNAMED_POSIX_SEMAPHORES 1
|
||||
_ACEOF
|
||||
|
||||
SEMA_IMPLEMENTATION="src/backend/port/posix_sema.c"
|
||||
else
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define USE_SYSV_SEMAPHORES 1
|
||||
_ACEOF
|
||||
|
||||
SEMA_IMPLEMENTATION="src/backend/port/sysv_sema.c"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# Select shared-memory implementation type.
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define USE_SYSV_SHARED_MEMORY 1
|
||||
_ACEOF
|
||||
|
||||
SHMEM_IMPLEMENTATION="src/backend/port/sysv_shmem.c"
|
||||
|
||||
|
||||
if test "$enable_nls" = yes ; then
|
||||
|
||||
echo "$as_me:$LINENO: checking for library containing gettext" >&5
|
||||
@ -16724,7 +16760,7 @@ fi
|
||||
ac_config_files="$ac_config_files GNUmakefile src/Makefile.global"
|
||||
|
||||
|
||||
ac_config_links="$ac_config_links src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c 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}"
|
||||
ac_config_links="$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}"
|
||||
|
||||
|
||||
ac_config_headers="$ac_config_headers src/include/pg_config.h"
|
||||
@ -17207,6 +17243,8 @@ do
|
||||
"src/Makefile.global" ) CONFIG_FILES="$CONFIG_FILES src/Makefile.global" ;;
|
||||
"src/backend/port/tas.s" ) CONFIG_LINKS="$CONFIG_LINKS src/backend/port/tas.s:src/backend/port/tas/${tas_file}" ;;
|
||||
"src/backend/port/dynloader.c" ) CONFIG_LINKS="$CONFIG_LINKS src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c" ;;
|
||||
"src/backend/port/pg_sema.c" ) CONFIG_LINKS="$CONFIG_LINKS src/backend/port/pg_sema.c:${SEMA_IMPLEMENTATION}" ;;
|
||||
"src/backend/port/pg_shmem.c" ) CONFIG_LINKS="$CONFIG_LINKS src/backend/port/pg_shmem.c:${SHMEM_IMPLEMENTATION}" ;;
|
||||
"src/include/dynloader.h" ) CONFIG_LINKS="$CONFIG_LINKS src/include/dynloader.h:src/backend/port/dynloader/${template}.h" ;;
|
||||
"src/include/pg_config_os.h" ) CONFIG_LINKS="$CONFIG_LINKS src/include/pg_config_os.h:src/include/port/${template}.h" ;;
|
||||
"src/Makefile.port" ) CONFIG_LINKS="$CONFIG_LINKS src/Makefile.port:src/makefiles/Makefile.${template}" ;;
|
||||
|
Reference in New Issue
Block a user