Мой код Java делает вызов jni функции c ++ (function0); Затем код C ++ запускает процесс:
int main_pid,new_process_pid=-1;
void function0(){
main_pid=getpid();
new_process_pid=fork();
if(main_pid!=getpid()){
main_process();//some process with its own threads
}
}
void kill_sub_process(){
if(new_process_pid!=-1){
kill(new_process_pid,SIGKILL);
}
}
когда я пытаюсь убить подпроцесс, вызвав из своей активности функцию onStop () для функции kill_sub_process, в logcat появляется следующая ошибка, и приложение вылетает:
Фатальный сигнал 4 (SIGILL), код 1, адрес ошибки 0x91cb3110 в tid 3844
Как правильно безопасно завершить подпроцесс?
процесс завершается без каких-либо проблем, когда я вызываю обработчик сигнала из подпроцесса, но происходит сбой, когда родитель отправляет сигнал;