Group: Is flock even necessary?
Allan: You look like you have Perled. It was necessary for Perl.
Have you thought of MySQL instead?
Alan McFarlane wrote:
> I've just written a couple of simple routines which read an write small text
> files to the server:
>
> function readData( $filename, &$data )
> {
> if (!$fd = @fopen($filename, "r"))
> {
> return false;
> }
>
> flock($fd, LOCK_SH);
> $data = fread($fd, filesize($filename));
> fclose($fd);
>
> return true;
> }
>
> function writeData( $filename, $data )
> {
> if (!$fd = @fopen($filename, "w"))
> {
> return false;
> }
>
> flock($fd, LOCK_EX);
> fwrite($fd, $data);
> fclose($fd);
>
> return true;
> }
>
> Now, the question is... How much time elapses between the fopen() statement
> and the flock() statements?
>
> Looking at the code, it would appear that two separate threads may call
> writeData() almost simultaneously giving the following execution:
>
> assume $filename = "sample.txt";
>
> Thread #1 - $fd = fopen($filename, "w"); // succeeds
> Thread #2 - $fd = fopen($filename, "w"); // succeeds (I think)
> Thread #1 - flock($fd, LOCK_EX); // Does this succeed or fail?
> Thread #2 - flock($fd, LOCK_EX); // fails (I think)
--
John Taylor-Johnston
-----------------------------------------------------------------------------
' ' ' Coll�ge de Sherbrooke:
��� http://www.collegesherbrooke.qc.ca/languesmodernes/
- Universit� de Sherbrooke:
http://compcanlit.ca/
819-569-2064
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php