stas        2003/12/03 20:50:23

  Modified:    src/docs/2.0/user/coding coding.pod
  Log:
  - update the Apache::MPM->is_threaded example
  - showcase the new API Apache::MPM->show;
  
  Revision  Changes    Path
  1.28      +30 -5     modperl-docs/src/docs/2.0/user/coding/coding.pod
  
  Index: coding.pod
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/docs/2.0/user/coding/coding.pod,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -u -r1.27 -r1.28
  --- coding.pod        1 Dec 2003 17:56:30 -0000       1.27
  +++ coding.pod        4 Dec 2003 04:50:23 -0000       1.28
  @@ -74,14 +74,14 @@
   =head2 Threaded MPM or not?
   
   If the code needs to behave differently depending on whether it's
  -running under one of the threaded MPMs, or not, the
  -C<Apache::MPM-E<gt>is_threaded> method can be used. For example:
  +running under one of the threaded MPMs, or not, the class method
  +C<Apache::MPM-E<gt>is_threaded> can be used. For example:
   
     use Apache::MPM ();
  -  use APR::OS ();
     if (Apache::MPM->is_threaded) {
  -      my $id = APR::OS::thread_current();
  -      print "current thread id: $id";
  +      require APR::OS;
  +      my $tid = APR::OS::thread_current();
  +      print "current thread id: $tid (pid: $$)";
     }
     else {
         print "current process id: $$";
  @@ -89,6 +89,31 @@
   
   This code prints the current thread id if running under a threaded
   MPM, otherwise it prints the process id.
  +
  +=head2 Writing MPM-specific Code
  +
  +If you write a CPAN module it's a bad idea to write code that won't
  +run under all MPMs, and developers should strive to write a code that
  +works with all mpms. However it's perfectly fine to perform different
  +things under different mpms.
  +
  +If you don't develop CPAN modules, it's perfectly fine to develop your
  +project to be run under a specific MPM.
  +
  +  use Apache::MPM ();
  +  my $mpm = lc Apache::MPM->show;
  +  if ($mpm eq 'prefork') {
  +      # prefork-specific code
  +  }
  +  elsif ($mpm eq 'worker') {
  +      # worker-specific code
  +  }
  +  elsif ($mpm eq 'winnt') {
  +      # winnt-specific code
  +  }
  +  else {
  +      # others...
  +  }
   
   
   =head1 Code Developing Nuances
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to