This looks like it will be available in snaps.php.net in about 40 minutes.

Looking forward to it!

On 17/04/07, Rob Richards <[EMAIL PROTECTED]> wrote:
Unless anyone sees a way to do this without adding the lock, I'd like to
commit this patch.
It adds a php_flock call only for windows. In doing so I got rid of the
win32/flock files and now compile with  flock_compat from main.

Rob


Richard Quadling wrote:
> The testing I'm using is to launch multiple copies of the same PHP
> script simultaneously using php.exe (CLI mode). This could easily be
> multiple FastCGI scripts or multiple ISAPI threads.
>
> On 16/04/07, William A. Rowe, Jr. <[EMAIL PROTECTED]> wrote:
>> Richard Quadling wrote:
>> > So isn't locking the solution for Windows?
>>
>> If this is single writer process, even with multithreads - a mutex
>> is most efficient, otherwise with concurrent writer processes, file
>> locking makes the most sense.
>>
>> Bill
>>
>
>

Index: ext/standard/config.w32
===================================================================
RCS file: /repository/php-src/ext/standard/config.w32,v
retrieving revision 1.4.2.2
diff -u -r1.4.2.2 config.w32
--- ext/standard/config.w32     4 Jan 2006 21:31:29 -0000       1.4.2.2
+++ ext/standard/config.w32     17 Apr 2007 11:34:16 -0000
@@ -16,5 +16,5 @@
        url_scanner_ex.c ftp_fopen_wrapper.c http_fopen_wrapper.c \
        php_fopen_wrapper.c credits.c css.c var_unserializer.c ftok.c sha1.c \
        user_filters.c uuencode.c filters.c proc_open.c \
-       streamsfuncs.c http.c", false /* never shared */);
+       streamsfuncs.c http.c flock_compat.c", false /* never shared */);

Index: main/main.c
===================================================================
RCS file: /repository/php-src/main/main.c,v
retrieving revision 1.640.2.23.2.34
diff -u -r1.640.2.23.2.34 main.c
--- main/main.c 16 Apr 2007 08:09:56 -0000      1.640.2.23.2.34
+++ main/main.c 17 Apr 2007 11:49:49 -0000
@@ -63,6 +63,7 @@
 #ifdef PHP_WIN32
 #include <io.h>
 #include "win32/php_registry.h"
+#include "ext/standard/flock_compat.h"
 #endif
 #include "php_syslog.h"
 #include "Zend/zend_exceptions.h"
@@ -362,8 +363,11 @@
                        time(&error_time);
                        strftime(error_time_str, sizeof(error_time_str), "%d-%b-%Y 
%H:%M:%S", php_localtime_r(&error_time, &tmbuf));
                        len = spprintf(&tmp, 0, "[%s] %s%s", error_time_str, 
log_message, PHP_EOL);
+#ifdef PHP_WIN32
+                       php_flock(fd, 2);
+#endif
                        write(fd, tmp, len);
-                       efree(tmp);
+                       efree(tmp);
                        close(fd);
                        return;
                }
Index: win32/build/config.w32
===================================================================
RCS file: /repository/php-src/win32/build/config.w32,v
retrieving revision 1.40.2.8.2.9
diff -u -r1.40.2.8.2.9 config.w32
--- win32/build/config.w32      16 Apr 2007 08:09:56 -0000      1.40.2.8.2.9
+++ win32/build/config.w32      17 Apr 2007 11:39:05 -0000
@@ -309,7 +309,7 @@
 ADD_SOURCES("main/streams", "streams.c cast.c memory.c filter.c 
plain_wrapper.c \
        userspace.c transports.c xp_socket.c mmap.c");

-ADD_SOURCES("win32", "crypt_win32.c flock.c glob.c md5crypt.c readdir.c \
+ADD_SOURCES("win32", "crypt_win32.c glob.c md5crypt.c readdir.c \
        registry.c select.c sendmail.c time.c wfile.c winutil.c wsyslog.c 
globals.c");

 ADD_SOURCES("regex", "regcomp.c regerror.c regexec.c regfree.c");




--
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to