Skip to content

Commit 59fd372

Browse files
committed
fix: #133 Корректное завершение процесса TGitCache.exe
1 parent af00ea4 commit 59fd372

File tree

1 file changed

+26
-25
lines changed

1 file changed

+26
-25
lines changed

src/core/Классы/МенеджерСинхронизации.os

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,38 +1291,39 @@
12911291

12921292
КонецФункции
12931293

1294-
Функция ЗапуститьПриложениеИДождатьсяЗавершения(Знач СтрокаЗапуска, Знач ТекущийКаталог = "\.")
1295-
1296-
Результат = -1;
1297-
Если НЕ ЭтоWindows И ТекущийКаталог = "\." Тогда
1298-
ТекущийКаталог = "./";
1294+
Процедура ЗавершитьПроцесс_TGitCache_exe()
1295+
1296+
Если Не ЭтоWindows Тогда
1297+
Возврат;
12991298
КонецЕсли;
13001299

1301-
Попытка
1302-
КодВозврата = "";
1303-
ЗапуститьПриложение(СтрокаЗапуска, ТекущийКаталог, Истина, КодВозврата);
1304-
Результат = КодВозврата;
1305-
Исключение
1306-
// Для x64 ОС
1307-
Если ЭтоWindows Тогда
1308-
СтрокаЗапуска = "%windir%\Sysnative\" + СтрокаЗапуска;
1309-
КодВозврата = "";
1310-
ЗапуститьПриложение(СтрокаЗапуска, ТекущийКаталог, Истина, КодВозврата);
1311-
Результат = КодВозврата;
1312-
КонецЕсли;
1313-
КонецПопытки;
1300+
ИмяПроцессаКешаГит = "TGitCache.exe";
13141301

1315-
Возврат Результат;
1302+
МассивПроцессов = НайтиПроцессыПоИмени(ИмяПроцессаКешаГит);
1303+
1304+
Если МассивПроцессов.Количество() = 0 Тогда
1305+
Возврат;
1306+
КонецЕсли;
13161307

1317-
КонецФункции // ЗапуститьПриложениеИДождатьсяЗавершения()
1308+
КомандаTaskKill = Новый Команда;
1309+
КомандаTaskKill.УстановитьКоманду("taskkill");
1310+
КомандаTaskKill.ДобавитьПараметр("/im");
1311+
КомандаTaskKill.ДобавитьПараметр(ИмяПроцессаКешаГит);
1312+
КомандаTaskKill.ДобавитьПараметр("/T");
1313+
КомандаTaskKill.ДобавитьПараметр("/F");
1314+
КомандаTaskKill.ДобавитьЛогВыводаКоманды(ИмяЛога());
13181315

1319-
Процедура ЗавершитьПроцесс_TGitCache_exe()
1320-
Если ЭтоWindows Тогда
1321-
СтрокаКоманды = "taskkill /im TGitCache.exe /T /F";
1322-
Лог.Отладка("ЗавершитьПроцесс_TGitCache_exe: команда "+ СтрокаКоманды);
1316+
КодВозврата = КомандаTaskKill.Исполнить();
13231317

1324-
ЗапуститьПриложениеИДождатьсяЗавершения(СтрокаКоманды);
1318+
Если КодВозврата <> 0 Тогда
1319+
КомандаTaskKill.УстановитьКоманду("%windir%/Sysnative/taskkill");
1320+
КодВозврата = КомандаTaskKill.Исполнить();
13251321
КонецЕсли;
1322+
1323+
Если КодВозврата <> 0 Тогда
1324+
Лог.КритичнаяОшибка("Не удалось завершить процесс <%>", ИмяПроцессаКешаГит);
1325+
КонецЕсли;
1326+
13261327
КонецПроцедуры
13271328

13281329
Функция ФорматДвузначноеЧисло(ЗначениеЧисло)

0 commit comments

Comments
 (0)