File tree Expand file tree Collapse file tree 1 file changed +7
-0
lines changed Expand file tree Collapse file tree 1 file changed +7
-0
lines changed Original file line number Diff line number Diff line change 1
1
Перем мСчетчик ;
2
2
Перем СтандартныйРазмерПаузы ;
3
+ Перем БлокировкаРесурса ;
3
4
4
5
// Конструктор.
5
6
//
14
15
Иначе
15
16
мСчетчик = Счетчик;
16
17
КонецЕсли ;
18
+
17
19
СтандартныйРазмерПаузы = 10 ;
20
+ БлокировкаРесурса = Новый БлокировкаРесурса(ЭтотОбъект);
21
+
18
22
КонецПроцедуры
19
23
20
24
// Осуществить захват семафора.
28
32
Процедура Захватить (ТаймаутОжидания = 0 ) Экспорт
29
33
ВремяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах ();
30
34
Пока Истина Цикл
35
+ БлокировкаРесурса.Заблокировать();
31
36
мСчетчик = мСчетчик - 1 ;
32
37
Если мСчетчик < 0 Тогда
33
38
мСчетчик = мСчетчик + 1 ;
39
+ БлокировкаРесурса.Разблокировать();
34
40
Если ЗначениеЗаполнено (ТаймаутОжидания) Тогда
35
41
ТекущееВремя = ТекущаяУниверсальнаяДатаВМиллисекундах ();
36
42
Если (ВремяНачала + ТаймаутОжидания) < ТекущееВремя Тогда
39
45
КонецЕсли ;
40
46
Приостановить(СтандартныйРазмерПаузы);
41
47
Иначе
48
+ БлокировкаРесурса.Разблокировать();
42
49
Прервать ;
43
50
КонецЕсли ;
44
51
КонецЦикла ;
You can’t perform that action at this time.
0 commit comments