
Dmitrii
21.02.2017
17:07:38
Паша, астанавись

ptchol
21.02.2017
19:03:14
можешь ещё в сomm сходить и руками ёбнуть туда что нибудь
но это для слвсем повернутых и я хз будет ли это всегда работать и вобще будет ли работать

Google

Pavel
21.02.2017
19:08:18
Вот и мне интересно

ptchol
21.02.2017
19:31:21
но если серьёзно, я вобще редко плохо отзываюсь о идеях людей, но вот твоя идея ужасно дерьмовая.
почему нельзя ipc сделать на тех же сигналах
или через шаредмем

Pavel
21.02.2017
20:00:18
Сигналы потому что не могут посылать доп. метадату, а с шаред мем будут вопросы с конкурентностью
В общем остается только именованые пайпы. Или неименованые.

ptchol
21.02.2017
20:01:48
вопрос с конкуретностью решается семафорами
ебать, а ты в имени процесса джейсон держать будешь ? )
это достойно 2017го но боюсь деды встанут из могил когда ты напишешь это

Pavel
21.02.2017
20:03:18
Про json отличная идея, но я хотел только 1 лексему держать
А так можно имя процесса использовать в качестве маленькой БД, вот это поворот
Следующий шаг после nosql

Vladislav
21.02.2017
20:52:05

Google

Vladislav
21.02.2017
20:52:59
в n-1 раз меньше получится, чем пайпов
в comm можно напихать все, что угодно, при желании. список процессов будет прекрасен, а кое-что в юзерспецсе будет крэшиться от json-а в имени

Pavel
21.02.2017
20:59:28
изверги вы доводите мои идеи до абсурда
А что если через сигналы передавать сообщения азбукой морзе?
USR1 USR2 как раз

Vladislav
21.02.2017
21:00:09
unreliable
точнуя задержка сильно зависит от hz и highres таймеров
если тебе не медленно, конечно, надо :)

Pavel
21.02.2017
21:01:36
Не, тут задержка ни при чем. USR1 это точка, USR2 это тире. Просто накапливаем их и потом десериализуем

Vladislav
21.02.2017
21:02:02
а, ну да, норм
пока внешний шум не помешал
заблочить сигналы от неинтересных процессов можно, но не сильно весело
статус файл можно сделать, mmapнуть его в каждом процессе и фиксированной структурой заполнять
лочить ренджем апи есть

Марк ☢
23.02.2017
06:04:03
А что там за задача была ?

Vladislav
23.02.2017
06:08:04

Марк ☢
23.02.2017
06:08:13
Например

Vladislav
23.02.2017
06:08:20
задача не моя, не помню

Wom
23.02.2017
06:09:08

Google

Марк ☢
23.02.2017
06:09:17

Vladislav
23.02.2017
06:09:45
Например
например один лок на весь процесс

Марк ☢
23.02.2017
06:09:52
Флок один на файл

Vladislav
23.02.2017
06:10:07

Марк ☢
23.02.2017
06:10:18
Уж я то про флок точно всё знаю :)

Vladislav
23.02.2017
06:10:42

Марк ☢
23.02.2017
06:11:08
Всмысле что это не самафор чтоли ?
Что значит один на владельца

Vladislav
23.02.2017
06:11:39
ох. ты меня гуглить заставляешь, дядя
```A process may only hold one type of lock (shared or exclusive) on a file. Subsequent flock() calls on an already locked file will convert an existing lock to the new lock mode.```

Vladislav
23.02.2017
06:14:06
плюс, к исходной задаче flock вообще никаким боком, т.к никаких диапазонов внутри файла не поддерживает

Марк ☢
23.02.2017
06:15:55
Дапахонов нет. Верно. Ну и да. Там мысль была что один процесс не может несколько лочек делать на одном файле. Всё верно.
Но для синхронизации изменений в файле вполне достаточнр

Vladislav
23.02.2017
06:16:10
не было такой мысли
при создании этого апи комиссия затупила и подмахнула реализацию, как есть, емнип
и вообще, вложенный лок по бороде

Марк ☢
23.02.2017
06:17:51
Ну да

Google

Марк ☢
23.02.2017
06:17:56
А чо. Как в эскулайте
И ничо. Живут же

Vladislav
23.02.2017
06:18:09
более того. НЕЛЬЗЯ получить состояние лока файла по апи
это ваще пздц

Марк ☢
23.02.2017
06:18:26

Vladislav
23.02.2017
06:18:43
приходится в procfs лазить, иначе дескрипторы течь будут

Марк ☢
23.02.2017
06:18:56
Получение состояния залочки это вобще бесполезная операция ибо оно может поменяться в следующую наносекунду

Vladislav
23.02.2017
06:19:08

Admin
ERROR: S client not available

Vladislav
23.02.2017
06:21:51

Марк ☢
23.02.2017
06:22:11
Что это за нах я прочитал ?

Vladislav
23.02.2017
06:22:14
крч гогно этот ваш flock

Марк ☢
23.02.2017
06:22:19
Вложенных локов нет
Ксли ты сам залочил -- блять ну запомни это в переменной

Vladislav
23.02.2017
06:22:44
а погли бы быть, с самым простым рефкаунтингом

Марк ☢
23.02.2017
06:22:58
И они есть в линупсе

Vladislav
23.02.2017
06:23:10
но нет же, как протащили (ibm вроде), без рефкаунтинга, так и стандартизировали

Марк ☢
23.02.2017
06:23:22
Даже три штуки разных

Google

Vladislav
23.02.2017
06:23:53

Марк ☢
23.02.2017
06:24:08
А. Или тебе надо чтобы одни анлоком все локи очищать ?
Чо надо то

Vladislav
23.02.2017
06:25:45
хотя бы в теории
без внешних прерываний

Марк ☢
23.02.2017
06:26:13
Блять. Ну апи там такое

Vladislav
23.02.2017
06:26:21
вот ☝️

Марк ☢
23.02.2017
06:26:26
Не понял кейс

Vladislav
23.02.2017
06:27:13
и все это гавнище решается одним полем в структурке лока и 2-мя строчками рефкаунтинга

Марк ☢
23.02.2017
06:27:40
Блять а чо надо то. Напиши более подробный кейс применения
Я всеравно не понял

Vladislav
23.02.2017
06:27:51
* I wish world was prefect, but it's not (c) kernel code *

Марк ☢
23.02.2017
06:29:06
http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_mutex_lock.html
If the mutex type is PTHREAD_MUTEX_RECURSIVE, then the mutex maintains the concept of a lock count. When a thread successfully acquires a mutex for the first time, the lock count is set to one. Every time a thread relocks this mutex, the lock count is incremented by one. Each time the thread unlocks the mutex, the lock count is decremented by one. When the lock count reaches zero, the mutex becomes available for other threads to acquire. If a thread attempts to unlock a mutex that it has not locked or a mutex which is unlocked, an error will be returned.
Это штоли ?

Vladislav
23.02.2017
06:29:48
да, но без pthreads

Марк ☢
23.02.2017
06:30:22
А чо. Птхреадс мутекс можно сделать в шаропамяти в замеморимапленром файле
У мну есть пример. Когда экспериментировал

Vladislav
23.02.2017
06:30:38
можно конечно