Вот упрощенная версия моего кода:
- (IBAction)convert:(id)sender
{
/* these two lines are ignored */
[textbox setStringValue:@"converting"];
[convertButton setEnabled:NO];
pid_t pid;
if((pid=fork())==-1)
{
[log setStringValue:@"couldn't fork a new process."];
converting = 0;
[convertButton setEnabled:YES];
return;
}else if (pid==0)
{
//this is the child
sleep(2);
exit(0);
}else{
int status;
waitpid(pid,&status,0);
}
}
}
Это довольно простой вызов fork (). Проблема в том, что две строки в самом верху (помеченные комментарием) игнорируются ... кажется, что они не выполняются до тех пор, пока после не разветвится дочерний элемент. Почему?
Редактировать : И что я могу сделать, чтобы это исправить?