phpbar.de logo

Mailinglisten-Archive

[php] File NICHT gesperrt. WARUM ?? HILFE!!!

[php] File NICHT gesperrt. WARUM ?? HILFE!!!

Hartmut Holzgraefe hartmut_(at)_six.de
Wed, 18 Oct 2000 10:42:47 +0200


"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