You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@locus.apache.org on 2000/04/15 16:08:54 UTC

cvs commit: apache-2.0/src/lib/apr/file_io/unix open.c filedup.c

trawick     00/04/15 07:08:54

  Modified:    src/lib/apr/file_io/unix open.c filedup.c
  Log:
  Add some missing file lock initialization.  This should have
  been added with the file buffering logic.
  
  The lock initialization in ap_dupfile() is probably wrong
  (need to share a lock with the file being duped) but Apache
  should be o.k. now (no SIGSEGV at init, no problems later).
  
  Revision  Changes    Path
  1.48      +4 -0      apache-2.0/src/lib/apr/file_io/unix/open.c
  
  Index: open.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/unix/open.c,v
  retrieving revision 1.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- open.c	2000/04/14 23:36:12	1.47
  +++ open.c	2000/04/15 14:08:53	1.48
  @@ -211,6 +211,10 @@
       (*file)->buffered = 0;
       (*file)->timeout = -1;
       (*file)->filedes = *dafile;
  +    /* buffer already NULL */
  +#if APR_HAS_THREADS
  +    ap_create_lock(&((*file)->thlock), APR_MUTEX, APR_INTRAPROCESS, NULL, cont);
  +#endif
       return APR_SUCCESS;
   }    
   
  
  
  
  1.19      +5 -0      apache-2.0/src/lib/apr/file_io/unix/filedup.c
  
  Index: filedup.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/unix/filedup.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- filedup.c	2000/04/14 23:36:12	1.18
  +++ filedup.c	2000/04/15 14:08:53	1.19
  @@ -53,6 +53,7 @@
    */
   
   #include "fileio.h"
  +#include "apr_portable.h"
   
   ap_status_t ap_dupfile(ap_file_t **new_file, ap_file_t *old_file)
   {
  @@ -78,6 +79,10 @@
       else {
           (*new_file)->filedes = dup(old_file->filedes); 
       }
  +#if APR_HAS_THREADS
  +    ap_create_lock(&((*new_file)->thlock), APR_MUTEX, APR_INTRAPROCESS, NULL, 
  +                   old_file->cntxt);
  +#endif
       (*new_file)->fname = ap_pstrdup(old_file->cntxt, old_file->fname);
       (*new_file)->buffered = old_file->buffered;
       ap_register_cleanup((*new_file)->cntxt, (void *)(*new_file), ap_unix_file_cleanup,