Dokumentacja dla bloku interruptionHandler
z NSXPCConnection
stanów:Czy procedura obsługi przerwań XPC jest wywoływana, gdy launchd zabija proces?
obsługi przerwania, które jest uruchamiane w przypadku zdalnych wyjść procesowych lub awarii.
Jednak Daemons and Services Programming Guide stany:
usługi XPC są zarządzane przez launchd, który uruchamia je na żądanie, ponownie uruchamia je w razie awarii, a kończy je (poprzez wysłanie SIGKILL), gdy są one w stanie bezczynności. Jest to niewidoczne dla aplikacji korzystającej z usługi, z wyjątkiem przypadku usługi, która ulega awarii podczas przetwarzania komunikatu wymagającego odpowiedzi. W takim przypadku wniosek może zobaczyć, że jej związek XPC stał się nieważny, aż usługa zostanie wznowiona przez launchd
Jeśli proces XPC ginie na bezczynności, dostanę wywołania zwrotnego w moim interruptionHandler
? Czy otrzymam tylko wywołanie zwrotne, gdy aplikacja ulegnie awarii podczas przetwarzania wiadomości? Pytam, ponieważ ten przypadek testowy wydaje się niemożliwy do symulacji. Cykl obsługi usług XPC to niestety bardzo czarna skrzynka.
Czy dowiedziałeś się, co robi? Wysyłanie SIGKILL ręcznie wywołuje procedurę obsługi przerwania. – ctietze