Return-Path: Delivered-To: new-httpd-archive@hyperreal.org Received: (qmail 9410 invoked by uid 6000); 12 Jul 1999 18:03:17 -0000 Received: (qmail 9402 invoked from network); 12 Jul 1999 18:03:15 -0000 Received: from fwns2d.raleigh.ibm.com (HELO fwns2.raleigh.ibm.com) (204.146.167.236) by taz.hyperreal.org with SMTP; 12 Jul 1999 18:03:15 -0000 Received: from rtpmail03.raleigh.ibm.com (rtpmail03.raleigh.ibm.com [9.37.172.47]) by fwns2.raleigh.ibm.com (8.9.0/8.9.0/RTP-FW-1.2) with ESMTP id OAA26976 for ; Mon, 12 Jul 1999 14:03:12 -0400 Received: from chosondo.raleigh.ibm.com (chosondo.raleigh.ibm.com [9.37.73.195]) by rtpmail03.raleigh.ibm.com (8.8.5/8.8.5/RTP-ral-1.1) with ESMTP id OAA32590 for ; Mon, 12 Jul 1999 14:03:13 -0400 Date: Mon, 12 Jul 1999 13:51:03 -0400 (EDT) From: Ryan Bloom To: new-httpd@apache.org Subject: Re: Shared memory in APR. (fwd) In-Reply-To: <19990712171155.A14241@engelschall.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org Status: O > Ok, but I've to admit that I still don't understand the issue completely. > When non-Unix platforms don't support fork() and instead some sort of thread > spawning, why is this bad for shared memory? Isn't APR more lucky then? I mean > the "shared memory" on these platforms we get for free, right? And on Unix we > use MM for "real" shared memory. As somebody else mentioned, Brian I think, I am not talking about thread spawning, but process spawning. Take a look at Windows. There is no fork call, but there is a CreateProcess call. This doesn't duplicate the current process environment, but rather it creates an all new one. I know of at least two other platforms that have this problem. We need a way to reliably open shared memory in a child process that never shared data with it's parent. If this is not possible with MM, then we need to re-implement MM for APR, IMO. We support at least two platforms, where I do not believe fork is the correct call to make. :-) > > I think the problem in our communication is that you want a shared mem > mechanism for APR which can be used between unrelated processed while I always > thought that we only deal with related processes, right? That's the fork+exec > goal you talked about, right? And is this _really_ necessary for APR? Hmmm.. > then ok, it gets even hard under Unix, of course. Every Unix shared memory call I know of has a way to do this. It is simply a matter of designing things so that they work. This is where I am getting hung up. Basically, we need a MM_child_reopen_shared_memory() call. Ryan _______________________________________________________________________ Ryan Bloom rbb@raleigh.ibm.com 4205 S Miami Blvd RTP, NC 27709 It's a beautiful sight to see good dancers doing simple steps. It's a painful sight to see beginners doing complicated patterns.