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,