[EMAIL PROTECTED] wrote: > Hi, > > I'm a bit confused about the problem with the use of the APR atomic types. > Is the problem that it is not supported on all platforms?
No it is not yet supported on all platforms. > If this is the > case then isn't this a problem with the apr code? Even if a given OS > doesn't specifically offer atomic types then (as menioned earlier) a simple > mutex and int in a struct offers the same functionality.] Yep, there is an apr_atomic.c file that could be used as generic atomic code. > > As far as I can see, all this wrapping should be part of the apr, shouldn't > it? I think puting in #ifdef APR_USE_ATOMICS is a bit of band-aid solution; > Whether or not atomics are OS supported the variables in question should > really be only operated on atomically (in a multi-threaded environment) or > else the code is not thread-safe. The status of atomic is not 100% clear in APR. Someone from RedHat tells it will not work in user space (at least on Linux)(see http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=63643). For mod_webapp probably the best might be to use mutex instead of atomic. > > Also, I don't know if this has got anything to do with the compilation > problems found but when I first put in the atomics I found that the > implementation in the (fairly recent) version of the apr I had was broken > (on NT) and caused compilation to fail. Getting the latest version fixed > this problem. > > BTW Pier, sorry for not responding earlier - I managed to get the mod_webapp > module compiling for Apache 2 after tweaking the 1.3 makefile to get a 2.0 > makefile for NT. I used the apr directly from the Apache 2.0 distribution. > At the moment I am using Apache 2.0 on an NT intranet server with the > mod_webapp at it seems to behave identically to the 1.3 version. > > PS. If you want me to make any changes modifications (either changing the > #ifdef or anything else) to the warp connector just let me know.... I committed your changes. For the moment I think we should wait to see what happends in APR... > > PPS. I noticed a comment about mod_webapp being deprecated. Is this the > case? > No. It is just commented out in the server.xml that is delivered with the TC binaries. > > Simon. > > [EMAIL PROTECTED] wrote: > > >> Pier Fumagalli wrote: >> >>> "Cavan Morris" <[EMAIL PROTECTED]> wrote: >>> >>> >>> >>>> Attached is an ASCII file with my build process. It may be important >>>> to not that I'm using the APR libraries from the >>>> webapp-module-1.0.2-tc402 and apxs >>> >>>> from apache 2.0.32 not 2.0.35. >>> >>> >>> You _need_ to use the APR libraries shipped with your Apache 2.0 >>> version, and the same APXS, anyway it's bloated on my system as well. I >>> have some spare time on my hands tonight, and tomorrow... I'll try to >>> revamp the autoconf stuff and make it build again... >>> >>> <NOTE> I might break something in Win32 builds. Can someone with MSVC >>> give it a go once they see my commits, please? </NOTE> >>> >>>> Question: when you say "Yes, that's right... " do you mean yes that's >>>> right, the socketpool work may solve bug 8433 or yes that's right, it >>>> doesn't compile? >>> >> The #if APR_HAS_THREADS is wrong that should have been #if APR_HAS_ATOMIC. >> But APR_HAS_ATOMIC is not existing and it is not possible to force APR to >> use a generic C code for atomics (apr_force_atomic_generic cannot be set >> to one via some configure options). >> >> Therefore when apr_atomic_t is not defined mod_webapp compilation failed >> miserably. >> >> I will try to change the #if APR_HAS_THREADS into #ifdef USE_ATOMICS like >> in the mod_mem_cache.c of httpd-2.0. (As a temporary fix). >> >> >>> >>> Both... Yeah, the socketpool solves that problem as well (at least it should, >>> what's your worker configuration in Apache 2.0? - output of httpd -l please >>> :) and yes, it doesn't compile... >>> >>> On APR they're talking about removing atomics, since those bits actually >>> depend (especially on sun hardware) on some opcodes present only on V9 >>> architectures (JF might explain it better than me, the only 2 RISCs I've >>> coded for are PPCs and MIPSes), thus making binaries unportable from one >>> architecture to another... >> >> The atomic for SPARC is using cas that is an 8+ opcode. This causes >> "problems" on SPARC machines with "old" processors. >> >> There is a C code for machines that does not have a as atomic support. >> >> >>> Therefore my thought is to rely on inter-process mutex locking, instead >>> of atomics)... >>> >>> >>> >>>> Thanks for your time. >>> >>> >>> I feel lucky to have some spare time on my hands :) :) :) >>> >>> Pier >>> >>> >>> >>>> -Cavan Morris >>>> >>>> ----- Original Message ----- From: "Pier Fumagalli" >>>> <[EMAIL PROTECTED]> To: "Tomcat Developers List" >>>> <[EMAIL PROTECTED]> Sent: Saturday, April 27, 2002 8:58 AM >>>> Subject: Re: mod_webapp.so socketpool changes.. >>>> >>>> >>>> >>>> >>>>> "Cavan Morris" <[EMAIL PROTECTED]> wrote: >>>>> >>>>> >>>>> >>>>>> Hey Guys, I reported bug 8433 and am looking for a way to solve >>>>>> it. I thought that the socketpool work you're doing might solve >>>>>> the problem but wasn't able to compile the latest from cvs. My >>>>>> question is do you think that what you're working on could fix the >>>>>> bug? This is a very severe problem on my system. I have to >>>>>> restart both apache and tomcat if I get 2 concurrent requests. If >>>>>> you've got any ideas on the java side I can look into it, but have >>>>>> no idea what to do with the C. >>>>> >>>>> Yes, that's right... Can you send out why it doesn't compile? That >>>>> code uses ATOMIC, but given that atomics are going to go away in a >>>>> short time from APR, we'll need to change it to use intra-process >>>>> mutexes... >>>>> >>>>> It doesn't compile on OS/X as well... :( >>>>> >>>>> Pier >>>>> >>>>> -- I think that it's extremely foolish to name a server after the >>>>> current U.S. President. >>>>> B.W. Fitzpatrick >>>>> >>>>> >>>>> >>>>> -- To unsubscribe, e-mail: >>>>> <mailto:[EMAIL PROTECTED]> For additional >>>>> commands, e-mail: <mailto:[EMAIL PROTECTED]> >>>>> >>>>> >>>> -- To unsubscribe, e-mail: >>>> <mailto:[EMAIL PROTECTED]> For additional >>>> commands, e-mail: <mailto:[EMAIL PROTECTED]> >>> >>> >>> -- I think that it's extremely foolish to name a server after the >>> current U.S. President. >>> B.W. Fitzpatrick >>> >>> >>> >>> -- To unsubscribe, e-mail: >>> <mailto:[EMAIL PROTECTED]> For additional >>> commands, e-mail: <mailto:[EMAIL PROTECTED]> >>> >>> >>> >> >> >> >> -- To unsubscribe, e-mail: >> <mailto:[EMAIL PROTECTED]> For additional >> commands, e-mail: <mailto:[EMAIL PROTECTED]> >> >> > > > -- To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> For additional commands, > e-mail: <mailto:[EMAIL PROTECTED]> > > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>