Parent Directory
|
Revision Log
| Links to HEAD: | (view) (annotate) |
| Sticky Revision: |
Remove experimental MPMs that show no signs of going anywhere: perchild, threadpool, leader
Backport r239430 to the 2.2.x branch. Lets make sure WINCH is kept free.
Recreate 2.2.x branch from trunk.
Add ap_mpm_is_experimental and ap_mpm_is_threaded. Use these instead of checking for specific MPMs.
general property cleanup
The Event MPM. Designed to minimize Apache's KeepAlive overhead. This MPM depends on the current APR-trunk for new features added to the apr_pollset interface. Currently the underlying operating system must support KQueue or EPoll. Status: Should work as a drop in replacement for all non-ssl servers. SSL Requests that use HTTP 1.1 Pipelining do not currently work. Testing: I have tested it with Linux 2.6, FreeBSD 5.2.1, and OS X 10.3. Originally based on the patch by Greg Ames.
clean up the invocation of APR_CHECK_APR_DEFINE()... it no longer references the second parameter, which was incorrectly specified with out-of-tree APR anyway (which resulted in prefork being selected on Unix since we didn't ever think APR had thread support)
Perchild has been deemed experimental and has been moved to server/mpm/experimental/perchild.
Add warning message when selecting an experimental MPM. While this message will scroll by without their reading it, we can reasonably say that we warned them if they report errors.
Added support for the threadpool MPM
Added support for MPMs that live in subdirectories under server/mpm like server/mpm/experimental/*
Update --with-mpm help text wrt available OS/2 MPM name.
We must use absolute paths or we break VPATH builds.
Bail out at configure time if an invalid MPM was specified. Submitted by: jean-frederic clere <jfrederic.clere@fujitsu-siemens.com> Reviewed by: Jeff Trawick
Get rid of threaded MPM. This commit has the actual code changes. The deletes come next.
Kill two autoconf-related birds with one commit. - substr used in APACHE_MODULE for the help string did not parse correctly with autoconf 2.50+ so we had to punt there anyway and use AC_HELP_STRING. - Add APACHE_HELP_STRING define that will call AC_HELP_STRING on 2.50+ (actually not 2.13 - look at the regex call) or do our custom variation of it. This function can't have any extra spaces or it will be returned in the help string. So noted. If anyone can figure out how to insert a line break like 2.50+ does when we go over the 26th column, I'd appreciate it. I tried and I'm way too tired to figure it out now. Adding this would greatly simplify two or three HELP_STRING uses. - Switch all of those annoying WITH and ENABLE functions to use the APACHE_HELP_STRING. This makes everything consistent now. I've always had to go through and keep aligning everything every few months or so because I'm the only one who cares. No more. I refuse to do it any more! Use APACHE_HELP_STRING or be crucified. Looks decent with autoconf-2.13 and autoconf-2.52.
Use the prefork MPM by default on Unix.
Add the worker MPM. The name is probably horrible, but I couldn't come up with anything better. This is a multiple-worker/single listener MPM. This MPM is definately not complete, but it is a first step in the right direction.
Cosmetics: align the entry of MPMs in "configure --help" output
Make Apache check APR's configuration when determining the default MPM. This way, if APR is built without threads, then Apache defaults to the prefork MPM.
Get rid of Apache's concern for foo_CHECK_SIGWAIT_ONE_ARG. Apache no longer needs to define nor invoke such a macro since it is handled in APR.
Update APR macro usage to new name-protected names. Replace REENTRANCY_FLAGS with direct use of THREAD_CPPFLAGS. This is a temporary band-aid, since the way we currently set the standard make vars (CFLAGS, CPPFLAGS, LDFLAGS, etc.) is bogus and frequently redundant [to be fixed later].
Rename the mpmt_pthread module to threaded. This module has moved from the old mpmt_pthread directory to the new threaded directory.
Fix some spelling mistakes and remove the mpmt_beos MPM from the config.m4 file. Submitted by: Cliff Woolley <cliffwoolley@yahoo.com>
Remove the dexter MPM. This has been replaced with the Perchild MPM. The two MPMs are basically identical, except that Perchild also allows each child process to have a unique uid/gid combination.
Get Apache to configure completely again. This still doesn't build, but now we are getting very close.
Try to organize the MPM pre-selection to the hints.m4 file. PR: Obtained from: Submitted by: Reviewed by:
Add a new MPM. Currently this is almost an exact copy of the dexter MPM. In time, this will be the MPM that allows each child process to have a unique user id. I need a place to work and keep track of my changes. Don't expect this to work until next week sometime.
REmove the mpmt MPM. This also removes all of the config logic required to get this MPM to compile. I may try to combine the two threading MPMs a bit more, or I may not.
Fix VPATH builds
Remove all pthreads calls from the mpmt MPM prefork emulation. This makes the mpmt MPM look almost exactly like the original prefork MPM. Basically, all that's left is re-naming the defined directives so they work with 1.3 config files. That will come later.
Fix building the mpmt MPM. The problem was that IfModule uses the name of the C file to determine if a module is present. mpmt emulates three different MPMs though. If the default config file we have sane defaults for each of the three MPMs that mpmt emulates. To fix this, the build process creates a soft link to the original MPM name during the configure process, and the build process actually compiles that file, instead of the original mpmt.c. This allow the mpmt MPM to work just as well as mpmt_pthread.
Ack. is the variable that's set, so we better check that one :)
We already depend on these autoconf functions in other places. Avoid possible portability concerns by using them here as well
the new "mpmt" MPM is busted. the config system didn't listen to me when I said that I really wanted --with-mpm=mpmt_pthread. I made it listen :-) the new behavior: if you explicitly state an MPM, then it is used. if it guesses one, then it is free to replace that guess with mpmt. [ yes, this will probably change again when mpmt works ]
Initial version of the mpmt MPM. This MPM can emulate dexter, mpmt_pthread, and prefork. This basically just combines a lot of common code. This builds and serves pages in all three modes, but I don't think killing the server works in any of them. The configuration system hasn't changed at all, so using --with-mpm=(prefork|dexter|mpmt_pthread) all work. My goal is to remove the three separate MPMs in a few days, and then work on merging one of the BeOS and the OS/2 MPMs into this as well. :-)
All of Apache uses APR for shared memory, so Apache doesn't need to check for SHM_[RW].
Cleanup more of the Apache configuration. This removes all of the shared memory checks, because Apache relies completely on APR for shared memory support. In doing this, we also need to know how APR/MM are providing our shared memory (ie file or memory) that requires the change made to APR's configure script that was just committed.
Change the mmap() feature test to check only for existence. The autoconf-provided check used previously fails when the platform doesn't support MAP_FIXED. Apache doesn't use that mmap() feature, so we don't want to require it. Submitted by: Greg Ames
Work around the non-working pthread.h detection on OpenBSD. We can savely assume that pthread.h exists on every system which supports Pthreads. PR: #29
Add ap_sigwait() to support old-style sigwait().
Default to spmt_os2 on OS/2
These changes allow the MPM to be selected based on platform. At present it works for BeOS but adding others shouldn't be hard. Also added the OS2 MPM to the list.
Only check for pthreads for mpms that actually need it rather than assuming everything except prefork needs it. Clarify threads != pthreads.
Move threads/reentrancy m4 macros into threads.m4. All results are now cached and can be made easily available to Apache and APR.
These changes are committed together, because they depend on each other.
- shared modules can be built in the tree
- added support for --with-layout, uses APACI's config.layout
- working 'make install'
- working 'make depend'
- working Pthreads checks
- buildconf replaced
Fix the threads check so it works on non-bash shells. Submitted by: Sascha Schumann Reviewed by: Ryan Bloom
Finish the MPM decision logic. This moves the threads checking stuff into the mpm directory where it belongs. It also adds logic so that if threads aren't detected, we automatically choose to use the prefork mpm. Lastly, I also cleaned up a variable name to make it more consistent with the other variables used in our configure script.
First stab at logic to determine which threading library to use. This also gets rid of the hack of always putting -pthread in the CFLAGS variable.
Eliminate the .h.stub files; AC_DEFINE can generate the necessary #defines in the config header for us.
I shouldn't have to explicitly provide an MPM. I am setting the default as mpmt_pthread. I would much rather it was prefork, but the autoconf work hasn't progressed to the point that prefork will work yet. When it does work, I expect the default to change.
autoconf: Generate modules.c based on configuration. This is the first step to supporting selection of modules, and it seems to make --with-mpm actually work now.
The second part of the big autoconf patch, which actually adds autoconf building to the tree.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
| apache@apache.org | ViewVC Help |
| Powered by ViewVC 1.1.2 |