Skip to content

Commit b2617f1

Browse files
committed
Merge pull request #165 from arcfieldOSS/final
Modify "mkdir()" to be multi-writer safe
2 parents 7fd7a2e + 1ea7cd5 commit b2617f1

File tree

2 files changed

+8
-14
lines changed

2 files changed

+8
-14
lines changed

phpfastcache/3.0.0/abstract.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -280,13 +280,9 @@ protected function readfile($file) {
280280
throw new Exception("Can't Read File",96);
281281

282282
}
283-
if (flock($file_handle, LOCK_SH | LOCK_NB)) {
284-
while (!feof($file_handle)) {
285-
$line = fgets($file_handle);
286-
$string .= $line;
287-
}
288-
} else {
289-
throw new Exception("Can't Read File",96);
283+
while (!feof($file_handle)) {
284+
$line = fgets($file_handle);
285+
$string .= $line;
290286
}
291287
fclose($file_handle);
292288

phpfastcache/3.0.0/drivers/files.php

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,13 @@ private function getFilePath($keyword, $skip = false) {
5252
* Skip Create Sub Folders;
5353
*/
5454
if($skip == false) {
55-
if(!@file_exists($path)) {
56-
if(!@mkdir($path,$this->__setChmodAuto())) {
55+
//if it doesn't exist, I can't create it, and nobody beat me to creating it:
56+
if(!@is_dir($path) && !@mkdir($path,$this->__setChmodAuto()) && !@is_dir($path)) {
5757
throw new Exception("PLEASE CHMOD ".$this->getPath()." - 0777 OR ANY WRITABLE PERMISSION!",92);
58-
}
59-
60-
} elseif(!is_writeable($path)) {
61-
if(!chmod($path,$this->__setChmodAuto())) {
58+
}
59+
//if it does exist (after someone beat me to it, perhaps), but isn't writable or fixable:
60+
if(@is_dir($path) && !is_writeable($path) && !@chmod($path,$this->__setChmodAuto())) {
6261
throw new Exception("PLEASE CHMOD ".$this->getPath()." - 0777 OR ANY WRITABLE PERMISSION!",92);
63-
}
6462
}
6563
}
6664

0 commit comments

Comments
 (0)