Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Мьютекс на процесс - есть такое ?
|
|||
|---|---|---|---|
|
#18+
Есть клиент и сервер - разные приложения, которые между собой взаимодействуют. Для идентификации того, что сервер "живой" использую мьютекс. Проблема в том, что сервер может создаться в одном потоке, а работа с ним может происходить в других потоках. Соответственно, если поток-создатель сервера завершается, то мьютекс снимается и клиенты думают, что сервер умер. Есть что-то подобное мьютексу, но чтобы существовало в рамках всего процесса и не снималось при завершении потока, в котором он был создан ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 08:43 |
|
||
|
Мьютекс на процесс - есть такое ?
|
|||
|---|---|---|---|
|
#18+
Или, думаю, запустить в сервере отдельный поток, в котором и создать этот мьюткс и чтобы этот поток постоянно висел всё время, пока работает сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 09:01 |
|
||
|
Мьютекс на процесс - есть такое ?
|
|||
|---|---|---|---|
|
#18+
Джеффри Рихтер. Windows для профессионалов. Создание эффективных Win32-пpилoжeний с учетом специфики 64-разрядной версии Windows: Теперь, когда Вы научились именовать объекты, рассмотрим, как разделять их между процессами по именам. Допустим, после запуска процесса А вызывается функция: HANDLE hMutexPronessA = CreateMutex(NULL, FALSE, "JeffMutex"); Этот вызов заставляет систему создать новенький, как с иголочки, объект ядра "мъютекс" и присвоить ему имя JeffMutex Заметьте, что описатель hMutexProcessA в процессе А не является наследуемым, — он и не должен быть таковым при простом именовании объектов. Спустя какое-то время некий процесс порождает процесс В. Необязательно, что-бы последний был дочерним от процесса А; он может быть порожден Explorer или любым другим приложением. (В этом, кстати, и состоит преимущество механизма именования объектов перед наследованием.) Когда процесс В приступает к работе, исполняется код: HANDLE hMutexProcessB = CreateMutex(NULL, FALSE, "JeffMutex"); При этом вызове система сначала проверяет, не существует ли уже объект ядра с таким именем. Если да, то ядро проверяет тип этого объекта. Поскольку мы пытаемся создать мьютекс и его имя тоже JeffMutex, система проверяет права доступа вызывающего процесса к этому объекту. Если у него есть все права, в таблице описателей, принадлежащей процессу В, создается новая запись, указывающая на существующий объект ядра. Если же вызывающий процесс не имеет полных прав на доступ к объекту или если типы двух объектов с одинаковыми именами не совпадают, вызов CreateMutex заканчивается неудачно и возвращается NULL. Однако, хотя процесс В успешно вызвал CreateMutex, новый объект-мьютекс он не создал. Вместо этого он получил свой описатель существующего объекта-мьютекса. Счетчик объекта, конечно же, увеличился на 1, и теперь этот объект не разрушится, пока его описатели не закроют оба процесса — А и В. Заметьте, что значения описателей объекта в обоих процессах скорее всего разные, но так и должно быть, каждый процесс будет оперировать с данным объектом ядра, используя свой описатель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 09:04 |
|
||
|
Мьютекс на процесс - есть такое ?
|
|||
|---|---|---|---|
|
#18+
qwe2015, мьютекс и так определяется для процесса или нескольких процессов, он не может убираться при выходе из потока, если ты его сам убиваешь, это твои личные проблемы. в общем, что тебе нужно, совсем не ясно, что ты просишь, очень легко делается с мьютексом. да, ты не сказал - Win32? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 11:29 |
|
||
|
Мьютекс на процесс - есть такое ?
|
|||
|---|---|---|---|
|
#18+
qwe2015, почитай на тему что такое "процесс" и "поток" в Windows. Может часть вопросов сами отпадут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 12:13 |
|
||
|
Мьютекс на процесс - есть такое ?
|
|||
|---|---|---|---|
|
#18+
qwe2015, ты бы простой пример кода привел как у тебя мьютекс используется. Есть подозрение что ты в каком-то потоке блокируешь мьютекс, запускаешь еще один поток (сервер), а затем исходный поток завершается и мьютекс автоматом разблокируется. Если так - блокируй его в потоке сервера или замени мьютекс на event. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 12:25 |
|
||
|
Мьютекс на процесс - есть такое ?
|
|||
|---|---|---|---|
|
#18+
qwe2015Или, думаю, запустить в сервере отдельный поток, в котором и создать этот мьюткс и чтобы этот поток постоянно висел всё время, пока работает сервер. Так и работают сервера . Бежит процесс и слушает соккет , получает из соккета (от клиента ) сообщение, обработал и дальше слушает соккет . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2015, 10:58 |
|
||
|
|

start [/forum/moderation_log.php?user_name=log333]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
78ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 440ms |
| total: | 643ms |

| 0 / 0 |
