Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Использование flock [3]
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
LIME Да.
PS: Реально складывается впечатления, что ребятам на этом форуме просто не хватает женского внимания в реале
Мелкий
Отправлено: 18 Августа, 2013 - 23:55:38
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Ваш вопрос:
Squirrel пишет:
Вот никак не пойму, как П4 избежать.
Зачем вы закрываете дескриптор, если хотите, чтобы блокировка жила до пункта 5? Где вы вновь открываете файл, зачем-то вновь получаете блокировку?
Ваша ведь цитата:
Цитата:
Читаем из файла некое число, увеличиваем на единицу, записываем в файл обратно. Как сделать так, что бы другой процесс не смог получить доступ к файлу, пока работает первый.
Ну так открываем файл, получаем эксклюзивную блокировку, читаем значение, что-то с ним делаем, записываем, закрываем. Посередине действия-то зачем закрывать файл?
----- PostgreSQL DBA
LIME
Отправлено: 19 Августа, 2013 - 00:00:41
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
Мелкий пишет:
Ну так открываем файл, получаем эксклюзивную блокировку, читаем значение, что-то с ним делаем, записываем, закрываем. Посередине действия-то зачем закрывать файл?
Прости, а откровенно тебе какая разница, если ты все равно не знаешь, как реализовать то, что мне нужно?
Наверно, раз я это делаю, значит почему-то мне это было нужно, и именно так и не иначе.
Или ты считаешь, меня на столько тупой, что я сама бы не догадалась, в один прием с монопольной лочкой все cделать?
А вообще была бы нормальная документация по PHP, вопрос бы просто не возник. Столько бреда копипастят. По этому и приходится спрашивать у людей, которые делали что-то подобное.
Саныч
Отправлено: 19 Августа, 2013 - 02:16:57
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
Это ж откуда интересно, разработчики PHP копипастят документацию для своего же творения?
На такую документацию, как у PHP еще грех жаловаться.
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Squirrel
Отправлено: 19 Августа, 2013 - 02:40:30
Забанен
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
Саныч пишет:
Это ж откуда интересно, разработчики PHP копипастят документацию для своего же творения?
На такую документацию, как у PHP еще грех жаловаться.
А я представления не имею, откуда берут ее аффторы большинства сайтов. Но явно пишут ее не на основе просмотра исходного кода. А тупо берут ее из других источников, которые то же откуда-то ее взяли.
Если документация, такая чудесная, ответь на всего один простой вопрос.
Лочка файлов в PHP реализована на уровне парсера PHP, или на уровне ФС(ОС)?
И вопрос по сложнее. Что будет если процесс не закрывая файл сменит лочку с R на RW, если есть запрос на лочку от второго процесса.
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
DeepVarvar
1) Если верить документации с это сайта, то ответ не правильный.
2.1) Пруф?
2.2) Лично проверяли?
DeepVarvar
Отправлено: 19 Августа, 2013 - 03:02:15
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
1) Назовите мне другое приложение, которое абсолютно так же будет лочить файл в ФС и пхп встанет в очередь.
2.1) Нету
2.2) Хотел предложить сам, написав "Что стоит проверить?"
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
DeepVarvar
1) А причем тут другое приложение?
2) Вывод: ни теорией ни практикой ты свои слова доказать не можешь. Прости, но тогда на основании чего ты сделал такое заключение, если по факту оказалось, что в данном вопросе ты не компетентен.
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
1) Если приложение ни при чем, то и ответ корректен.
2) Перечитал вопрос еще раз - он некорректен, точнее невозможно уже открытый файл "переоткрыть" в другом режиме не закрывая его или не теряя дескриптор. И да, я проверил - скрипт который попытается переоткрыть файл потеряет свой лок и сможет писать наплевав на чужие локи, т.к. его лок был вызван ранее и не для этого дескриптора.
Мы с Вами на "ты" не переходили.
Кроме того, делаю Вам устное предупреждение за неуважительное отношение к другим участникам конференции.
Покинул форум
Сообщений всего: 26
Дата рег-ции: Июнь 2013
Помог: 0 раз(а)
Понятно что время, сколько flock ждет вычислить не удастся.
Но хоть как то можно ограничить его работу?Если нет лимита на выполнение скрипта то может выйти бесконечный цикл.
На php.net есть кучу примеров но никакой не пашет, да и то логично, внутри функции sleep() ведь.
Squirrel
Отправлено: 19 Августа, 2013 - 23:41:32
Забанен
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
steffex Погугли хорошенько на эту тему. В интернете масса примеров, где время получения лочки ограничено. И они работают.
steffex
Отправлено: 20 Августа, 2013 - 10:41:55
Новичок
Покинул форум
Сообщений всего: 26
Дата рег-ции: Июнь 2013
Помог: 0 раз(а)
Squirrel пишет:
steffex Погугли хорошенько на эту тему. В интернете масса примеров, где время получения лочки ограничено. И они работают.
Можно хоть один пример?Буду очень благодарен.
Кроме цикла while врядли еще какие есть, но он не работает.
Squirrel
Отправлено: 25 Августа, 2013 - 03:40:28
Забанен
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
DeepVarvar пишет:
Кроме того, делаю Вам устное предупреждение за неуважительное отношение к другим участникам конференции.
Указание на не компетентность, облом попытки смены темы, пресечение попытки троллинга, констатация факта, что оппонет занимается демагогий, не по вопросу в котором не разбирается, не является "неуважительным отношением".
То, что ты дал бан, горит только о том, что ты просто испугался, что тебя еще раз натыкают в выше перечисленное. Это раз.
А два. Обращение на "ВЫ" в рунете носит оскорбительный характер, в отличии от "ТЫ", которое писхически полноценными людьми всегда воспринимается нормально.
А три. Обращаться на "ВЫ" к не уважаемому, но социально равному человеку нормы поведения не требуют.
А четыре. Обращение на "ты", от социально равного человека воспринимается как оскорбление, только людьми психически нездоровыми, в частности страдающие манией величия, или комплексом собственной не полноценности.
А пять. То что ты отказался отвечать на вопрос заданный в личной переписки, говорит только о том, что никаких правил я не нарушала. Что означает, что бан был дан, по одной из причин указанных выше.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.