Информация об изменениях

Сообщение Re[5]: Освободить ресурс в случае креша? от 12.02.2022 9:18

Изменено 12.02.2022 9:19 Carc

Re[5]: Освободить ресурс в случае креша?
Здравствуйте, vsb, Вы писали:

vsb>Здравствуйте, Carc, Вы писали:


vsb>>>А зачем так сложно? На винде нельзя просто дождаться завершения работы конкретного процесса?

C>>Дождаться то можно, но как тогда узнать результат завершения процесса? Успешно или нет?

vsb>А зачем его узнавать? Я так полагаю, лицензию освобождать в любом случае надо.

Не факт, что "освобождать в любом случае надо"…
Кто захватывает лицензию тогда? Первый процесс (наблюдатель) или второй (набдюдаемый)?

Можно не проверять, если за захват лицензии отвечает только первый процесс (наблюдатель).
Т.е. как-то так
  1. запустился первый процесс,
  2. захватил лицензию,
  3. запустил второй процесс (наблюдаемый), который делаем всю полезную работу
  4. второй процесс всё сделал, и завершился
  5. первый процесс (наблюдатель) дождался завершения второго процесса (с полезной нагрузкой), и подчистил ресурсы (лицензию), и сам завершился…

Как то так… А вот если ресурс (лицензию) забирает именно второй процесс (наблюдаемый), то первому процессу (наблюдателю) нужно знать, как завершился второй (сам и корректно, и сам всё подчистил за собоой) или же второй процесс рухнул (и за ним нужны подчистить ту же лицензию).

vsb>Но в целом если надо — есть же код завершения процесса. Ну в юниксе есть по крайней мере. Вроде и в винде есть. 0 — нормально, не-0 — не нормально.

Об этом я уже писал выше. Главное чтобы оба процесса (наблюдатель и наблюдаемый) друг друга взаимопонимали по этим кодам возврата…
Re[5]: Освободить ресурс в случае креша?
Здравствуйте, vsb, Вы писали:

vsb>Здравствуйте, Carc, Вы писали:


vsb>>>А зачем так сложно? На винде нельзя просто дождаться завершения работы конкретного процесса?

C>>Дождаться то можно, но как тогда узнать результат завершения процесса? Успешно или нет?

vsb>А зачем его узнавать? Я так полагаю, лицензию освобождать в любом случае надо.

Не факт, что "освобождать в любом случае надо"…
Кто захватывает лицензию тогда? Первый процесс (наблюдатель) или второй (набдюдаемый)?

Можно не проверять, если за захват лицензии отвечает только первый процесс (наблюдатель).
Т.е. как-то так
  1. запустился первый процесс,
  2. захватил лицензию,
  3. запустил второй процесс (наблюдаемый), который делает всю полезную работу
  4. второй процесс всё сделал, и завершился
  5. первый процесс (наблюдатель) дождался завершения второго процесса (с полезной нагрузкой), и подчистил ресурсы (лицензию), и сам завершился…

Как то так… А вот если ресурс (лицензию) забирает именно второй процесс (наблюдаемый), то первому процессу (наблюдателю) нужно знать, как завершился второй (сам и корректно, и сам всё подчистил за собой) или же второй процесс рухнул (и за ним нужны подчистить ту же лицензию).

vsb>Но в целом если надо — есть же код завершения процесса. Ну в юниксе есть по крайней мере. Вроде и в винде есть. 0 — нормально, не-0 — не нормально.

Об этом я уже писал выше. Главное чтобы оба процесса (наблюдатель и наблюдаемый) друг друга взаимопонимали по этим кодам возврата…