|   Mailinglisten-Archive | 
"Lemberg, Sascha" wrote:
> moin,
> flock()-funktion benützt ?
rein Interessehalber (und vielleicht zu Gunsten des Manuals):
Wer hat Erfahrungen mit flock() in Multithred-Anwendungen, 
insbesondere mit PHP als Modul in einem reinen Multithreaded Server
(ISAPI, ..., Apache/WIN32(?)) ?
Meine Befürchtung ist, das evtl. das eine oder andere Betriebssystem 
Locks auf Prozess- und nicht auf Filedescriptorebene verwaltet, so
daß innerhalb einer Multithread-Anwendung, bei der ja alle Treads 
in einem einzigen gemeinsamen Prozess-Kontext laufen, die Sperran-
forderungen nicht greifen, auch wenn die einzelnen Threads eigentlich
unabhängig voneinander operieren ...
Das ist jetzt völlig ins blaue geschossen, aber ...
... ich höre gerade folgendens:
'man flock' auf Solaris:
     [...]
     Use of these interfaces should be restricted to only  appli-
     cations  written  on BSD platforms.  Use of these interfaces
     with any of the system libraries or in multi-thread applica-
     tions is unsupported.
     Locks are on files, not file  descriptors.   That  is,  file
     descriptors  duplicated  through  dup(2)  or  fork(2) do not
     result in multiple instances of a lock, but rather  multiple
     references to a single lock.  If a process holding a lock on
     a file forks and the child explicitly unlocks the file,  the
     parent  will  lose  its  lock.  Locks are not inherited by a
     child process.
     [...]
habe allerdings keine Ahnung, wie das auf MS-Plattformen aussieht ...
--
Hartmut Holzgraefe  hartmut_(at)_six.de  http://www.six.de  +49-711-99091-77 
Besuchen Sie uns auf der Buchmesse in Frankfurt, Halle 4.0, Stand D 1117 
             und auf der Systems   in München  , Halle  C2, Stand 126
    php::bar PHP Wiki - Listenarchive