BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> един файл - много процеси
Dr.Who
Публикувано на: 28-02-2018, 11:14
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 327
Регистриран на: 25.05.14



Кажете някой хитър начин да накарам N процеса, които са отворили един файл, да го затворят !?
Процесите работят без да спират - не искам да ги спирам и не искам да им добавям сигнал хандлъри.
Може и да е linux-only и да не е портабъл.

PMEmail Poster
Top
lucky
Публикувано на: 28-02-2018, 11:22
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 517
Регистриран на: 05.08.17



Ей ти го първия резултат. Амааа, много мирише тоя метод с gdb icon_lol.gif
PMEmail Poster
Top
dvader
Публикувано на: 28-02-2018, 11:25
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4065
Регистриран на: 12.07.05



А с каква цел е всичката гимнастика?

Това мнение е било редактирано от dvader на 28-02-2018, 11:25


--------------------
I find your lack of faith disturbing
PM
Top
Dr.Who
Публикувано на: 28-02-2018, 11:42
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 327
Регистриран на: 25.05.14



QUOTE (dvader @ 28-02-2018, 11:25)
А с каква цел е всичката гимнастика?

Всички процеси апендват в нещо като журнал. В един момент решаваме да отрежeм журнала и да започнем на чисто /нещо като log rotate/
PMEmail Poster
Top
dvader
Публикувано на: 28-02-2018, 12:45
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4065
Регистриран на: 12.07.05



Е те като апендват би трябвало да ползват синхронизация.
От тук следва алгоритъмът:
а) заключваме файла
б) копираме файла
в) truncate на файла
г) отключваме файла
д) всички почват да пишат в началото на файла.


--------------------
I find your lack of faith disturbing
PM
Top
Dr.Who
Публикувано на: 28-02-2018, 23:13
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 327
Регистриран на: 25.05.14



Ами нали далаверата на апендването е, че е атомарно и не им трябва синхронизация.
Сега ти предлагаш преди всяко писане да се заключва файла и след това да се отключва.
Че то тогава не е ли по-добре да се отваря файла / пишем / затваряме.

Чудя се дали да не го направя с inotify, което никога не съм ползвал.
PMEmail Poster
Top
dvader
Публикувано на: 01-03-2018, 07:11
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4065
Регистриран на: 12.07.05



А, вярно, че има и O_APPEND...
lockf тогава?


--------------------
I find your lack of faith disturbing
PM
Top
bvbfan
Публикувано на: 01-03-2018, 07:13
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2786
Регистриран на: 08.12.13



И аз мисля, че трябва да има някаква синхронизация, защото може да свършиш с
Some tSome text from pocess 2
ext from process1


--------------------
QUOTE (Bender @ 23-04-2015, 19:11)
Xamarin: ЛАПАЙ!
Ти: Добре...
PMEmail Poster
Top
Dr.Who
Публикувано на: 01-03-2018, 09:11
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 327
Регистриран на: 25.05.14



QUOTE (bvbfan @ 01-03-2018, 07:13)
И аз мисля, че трябва да има някаква синхронизация, защото може да свършиш с
Some tSome text from pocess 2
ext from process1

Не може да стане.
Всеки запис се прави с single write, който е атомарна операция.

PMEmail Poster
Top
Gamma Goblin
Публикувано на: 01-03-2018, 09:40
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1093
Регистриран на: 21.02.18



QUOTE (Dr.Who @ 01-03-2018, 09:11)
QUOTE (bvbfan @ 01-03-2018, 07:13)
И аз мисля, че трябва да има някаква синхронизация, защото може да свършиш с
Some tSome text from pocess 2
ext from process1

Не може да стане.
Всеки запис се прави с single write, който е атомарна операция.

Не е баш така. Срамота е да ни си ударил един SO преди да говориш такива глупости https://stackoverflow.com/a/1154599/2588800

Ети и друго https://www.notthewizard.com/2014/06/17/are...-really-atomic/

и още едно http://www.gnu.org/software/libc/manual/ht...-Atomicity.html

Да разчиташ на такъв хак е меко казано неразумно

Това мнение е било редактирано от Gamma Goblin на 01-03-2018, 09:43


--------------------
Напред! Живота е сраженье!
Напред! И прав всегда ходи!
Напред, макар към поражение!
Ако ще паднеш, прав падни!
---
Axis of faith; Raw, and untamed in spirit
To do and undo...
We chew this world; And Spit it out
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0