Реклама / ООО «ИЗОЛПРОЕКТ» / ИНН: 7725566484 | ERID: 2VtzqwauJdq
IPB IPB
Проектирование, монтаж, наладка, сервис


Здравствуйте, гость ( Вход | Регистрация )

- Рекомендации АВОК 5.5.1-2023
«Системы противодымной вентиляции жилых и общественный зданий»

- Рекомендации АВОК 7.8.3-2023
«Проектирование инженерных систем лабораторий»

- Рекомендации АВОК 7.10-2023
«Здания жилые и общественные. Защита от шума и вибрации инженерного оборудования»

АВОК в соц. сетях
ИНН: 7714824045
 
Добавить ответ в эту темуОткрыть тему
> семафоры, прошу помощи
Alferov
сообщение 27.1.2014, 20:27
Сообщение #1





Группа: Участники форума
Сообщений: 103
Регистрация: 21.11.2010
Из: Tula
Пользователь №: 82159



Всем Д.В.

Прошу помочь разобраться с семафорами.
Я так понимаю, этот функционал предназначался для корректной работы event-скриптов.
Пытаюсь попробовать расширить использование семафоров, и применить их в разруливании работы event-скрипта и resident-скрипта.
Конкретная задача:
Есть event-скрипт. Когда он выполняется, нужно блокировать работу resident-скрипта.
Это в принципе возможно? Если да, прошу привести пример.

Спасибо.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
EVIKA_News
сообщение 28.1.2014, 20:15
Сообщение #2





Группа: New
Сообщений: 19
Регистрация: 10.4.2013
Пользователь №: 188928



Александр Привет.
Документ Руководство программиста.Semaphore library поможет ?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Alferov
сообщение 28.1.2014, 20:46
Сообщение #3





Группа: Участники форума
Сообщений: 103
Регистрация: 21.11.2010
Из: Tula
Пользователь №: 82159



Видел, не помогает... пробую по аналогии, но не уверен что правильно делаю все )))
Там тоже только для event-скриптов все примеры. sad.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
missile
сообщение 29.1.2014, 7:13
Сообщение #4





Группа: New
Сообщений: 4
Регистрация: 20.10.2010
Пользователь №: 77195



Если я правильно понял, то можно в Event скрипте менять какую-либо глобальную переменную, а в resident её отслеживать (простое условие if в самом начале resident). Правда тут нужно смотреть время стартов скриптов...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Arrow
сообщение 29.1.2014, 19:04
Сообщение #5





Группа: Участники Форума2
Сообщений: 77
Регистрация: 11.10.2011
Пользователь №: 125056



missile, к сожалению вы не правы.
evika_news правильно дала ссылку на руководство программиста, там разобран пример. Неважно это событийный скрипт или резидентный, код одинаковый.

Этой конструкцией вы открываете семафор. Он глобален для всех скриптов
semaphore = sem.open('eventlock') эту функцию вызываете в обоих скриптах
конструкция
while not semaphore:trywait() do
sleep(0.1)

end
-- делаем чего-нибудь

отслеживает когда первый семафор закроется и можно продолжать выполнение скрипта, а до этого крутится в цикле while.

Более подробно прочитать о работе в многопоточных системах вы можете прочитать в любой специализированной литературе.

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Alferov
сообщение 30.1.2014, 7:12
Сообщение #6





Группа: Участники форума
Сообщений: 103
Регистрация: 21.11.2010
Из: Tula
Пользователь №: 82159



Ага, значит я правильно понял, что семафоры являются глобальными. А не только для event-скриптов.

спасибо за помощь.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Реклама
ООО «Арктика групп» ИНН: 7713634274



ООО "Русич" ИНН 9721068883 / ЕРИД 2VtzqxFiuCx

ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2Vtzqx6MLPt

Последние сообщения Форума





Rambler's Top100 Rambler's Top100

RSS Текстовая версия Сейчас: 1.6.2024, 8:49