![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Добрый день. Вопрос по сабжу. Сразу оговорюсь, интересует именно виндовый объект синхронизации, не POSIX (там такая возможность имеется). Если есть такая апи-функция, возвращающая состояние мьютеса в момент вызова (без вхождения в мьютекс), либо иной способ, буду признателен!
"ковыряю изнутри" (с)
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Нет, такой возможности нет.
А смысл? |
![]() |
![]() |
![]() |
#3 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
смысл есть: например абстрактная ситуация, когда следует узнать, возможно ли обратиться к каким-то данным или начать какой-то процесс. Для этого достаточно узнать состояние мьютекса (речь о нем конкретно в данном топике) - сигнальное или нет. Например, с критической секцией это возможно.
"ковыряю изнутри" (с)
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
лучше не разделять получение ресурса с проверкой состояния.
потому что вы можете попасть в ситуацию что мютекс свободен в проверке, а к моменту захвата уже нет. потому пытайтесь захватить, вышло значит можно работать с ресурсом, иначе нет.(захват без ожидания) Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#5 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Пепел Феникса, вы пояснили причину, это понятно. Однако будет работать такой пример: gui не может начать выполнять задание, пока поток не отработает. Т.е захватчиков ресурсов одномоментно может быть только 1. Вопрос остался открытым - реально ли получить состояние мьютекса? если да, то как. Спасибо.
"ковыряю изнутри" (с)
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
не путайте мютексы с флагами. без захвата никак, и это верно. ИМХО. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#7 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Чтож, спасибо и на этом. Ответа на интересующий вопрос я не получил. Тему можно закрыть.
"ковыряю изнутри" (с)
|
![]() |
![]() |
![]() |
#8 | ||
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]() Цитата:
Если вы имеете ввиду TryEntryCriticalSection ето несколько иное - это захват критической секции, можете ровно так же сделать и с мьютексом. Кроме того, эта абстрактная ситуация точно так же абстрактно может не работать. Например вы проверили мьтекс, увидили, что он не захвачен, после чего запустили обработку но в это время мьютекс был захвачен кем-то другим - и что делать? Ответ на ваш вопрос вы получили ровно в первом же ответе. Цитата:
Последний раз редактировалось Пепел Феникса; 29.02.2016 в 18:14. |
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
узнать состояние переменной из другого потока | Antony41 | Общие вопросы Delphi | 20 | 18.06.2015 12:00 |
Узнать состояние TPopupMenu | Alter | Компоненты Delphi | 2 | 07.03.2011 13:21 |
Узнать состояние кнопок мыши | Cold_Night | Общие вопросы Delphi | 3 | 07.06.2009 21:36 |
Узнать состояние подключения | Hottabych | Работа с сетью в Delphi | 8 | 03.03.2008 18:10 |
можно ли узнать имя HTML-поля, кликнув на него? | furstenberg | Работа с сетью в Delphi | 0 | 28.01.2008 16:49 |