Обсуждение: QNX4-Patch

Поиск
Список
Период
Сортировка

QNX4-Patch

От
"Tegge, Bernd"
Дата:
I have tried to build the 7.2 beta from cvs on QNX4. Found the following
problems :
MaxBackends not defined in semaphore test program.

*** tstsem.c    Sun Nov  4 19:51:26 2001
--- tstsem.c.new        Sun Nov  4 19:52:58 2001
***************
*** 26,31 ****
--- 26,33 ----
   #define SEMMAX        16
   #define OPSMAX        1


+ int MaxBackends = SEMMAX;
+
   static int    semid;

   static void

Number of necessary semaphores in sem.c not consistent with
.../storage/lmgr/proc.c. IMHO, it would be better to change the macro
PROC_SEM_MAP_ENTRIES in proc.h to "((maxBackends+1)/PROC_NSEMS_PER_SET+1)"
instead. Otherwise the darwin port has a similar problem.

*** sem.c       Sun Nov  4 19:53:22 2001
--- sem.c.new   Sun Nov  4 19:52:46 2001
***************
*** 175,179 ****
                         return fd;
                 /* The size may only be set once. Ignore errors. */
!               nsets = PROC_SEM_MAP_ENTRIES(MaxBackends);
                 sem_info_size = sizeof(struct sem_info) + (nsets - 1) *
sizeof(struct sem_set_info);
                 ltrunc(fd, sem_info_size, SEEK_SET);
--- 175,179 ----
                         return fd;
                 /* The size may only be set once. Ignore errors. */
!               nsets = PROC_SEM_MAP_ENTRIES(MaxBackends + 1);
                 sem_info_size = sizeof(struct sem_info) + (nsets - 1) *
sizeof(struct sem_set_info);
                 ltrunc(fd, sem_info_size, SEEK_SET);



--
Bernd Tegge                  mailto:tegge@repas-aeg.de
Tel: ++49-511-87449-12       repas AEG Automation GmbH
Fax: ++49-511-87449-20       GS Hannover, Germany


Re: QNX4-Patch

От
Tom Lane
Дата:
"Tegge, Bernd" <tegge@repas-aeg.de> writes:
> Number of necessary semaphores in sem.c not consistent with
> .../storage/lmgr/proc.c. IMHO, it would be better to change the macro
> PROC_SEM_MAP_ENTRIES in proc.h to "((maxBackends+1)/PROC_NSEMS_PER_SET+1)"
> instead. Otherwise the darwin port has a similar problem.

Yeah, I discovered that on Darwin last night ;-).  I changed
PROC_SEM_MAP_ENTRIES, on the theory that the point of that macro is
to localize the knowledge of how many semaphores to create.

            regards, tom lane