You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Jim Jagielski <ji...@hyperreal.com> on 1996/04/11 21:38:41 UTC
cvs commit: apache/src http_main.c
jim 96/04/11 12:38:40
Modified: src http_main.c
Log:
centralize shared memory support mmap/shmget
Revision Changes Path
1.22 +39 -39 apache/src/http_main.c
Index: http_main.c
===================================================================
RCS file: /export/home/cvs/apache/src/http_main.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -C3 -r1.21 -r1.22
*** http_main.c 1996/04/09 08:18:38 1.21
--- http_main.c 1996/04/11 19:38:38 1.22
***************
*** 422,427 ****
--- 422,465 ----
#if defined(HAVE_MMAP)
static short_score *scoreboard_image=NULL;
+
+ static void setup_shared_mem(void)
+ {
+ caddr_t m;
+ #if defined(MAP_ANON) || defined(MAP_FILE)
+ /* BSD style */
+ m = mmap((caddr_t)0, HARD_SERVER_MAX*sizeof(short_score),
+ PROT_READ | PROT_WRITE, MAP_ANON | MAP_SHARED, -1, 0);
+ if (m == (caddr_t)-1)
+ {
+ perror("mmap");
+ fprintf(stderr, "httpd: Could not mmap memory\n");
+ exit(1);
+ }
+ #else
+ /* Sun style */
+ int fd;
+
+ fd = open("/dev/zero", O_RDWR);
+ if (fd == -1)
+ {
+ perror("open");
+ fprintf(stderr, "httpd: Could not open /dev/zero\n");
+ exit(1);
+ }
+ m = mmap((caddr_t)0, HARD_SERVER_MAX*sizeof(short_score),
+ PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+ if (m == (caddr_t)-1)
+ {
+ perror("mmap");
+ fprintf(stderr, "httpd: Could not mmap /dev/zero\n");
+ exit(1);
+ }
+ close(fd);
+ #endif
+ scoreboard_image = (short_score *)m;
+ }
+
#elif defined(HAVE_SHMGET)
static short_score *scoreboard_image=NULL;
static key_t shmkey = IPC_PRIVATE;
***************
*** 551,596 ****
/* Called by parent process */
void reinit_scoreboard (pool *p)
{
! #if defined(HAVE_MMAP)
if (scoreboard_image == NULL)
- {
- caddr_t m;
- #if defined(MAP_ANON) || defined(MAP_FILE)
- /* BSD style */
- m = mmap((caddr_t)0, HARD_SERVER_MAX*sizeof(short_score),
- PROT_READ | PROT_WRITE, MAP_ANON | MAP_SHARED, -1, 0);
- if (m == (caddr_t)-1)
- {
- perror("mmap");
- fprintf(stderr, "httpd: Could not mmap memory\n");
- exit(1);
- }
- #else
- /* Sun style */
- int fd;
-
- fd = open("/dev/zero", O_RDWR);
- if (fd == -1)
- {
- perror("open");
- fprintf(stderr, "httpd: Could not open /dev/zero\n");
- exit(1);
- }
- m = mmap((caddr_t)0, HARD_SERVER_MAX*sizeof(short_score),
- PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (m == (caddr_t)-1)
- {
- perror("mmap");
- fprintf(stderr, "httpd: Could not mmap /dev/zero\n");
- exit(1);
- }
- close(fd);
- #endif
- scoreboard_image = (short_score *)m;
- }
- memset(scoreboard_image, 0, HARD_SERVER_MAX*sizeof(short_score));
- #elif defined(HAVE_SHMGET)
- if (scoreboard_image == NULL )
{
setup_shared_mem();
}
--- 589,596 ----
/* Called by parent process */
void reinit_scoreboard (pool *p)
{
! #if defined(HAVE_SHMGET) || defined(HAVE_MMAP)
if (scoreboard_image == NULL)
{
setup_shared_mem();
}