Подумайте о переработке кода с помощью этого примера , который я создал здесь в 2016 году. Возможно, это может обеспечить вам некоторую стабильность. Кроме того, вы опубликовали это еще в 2012 году. OSX 10.5 будет довольно старой - большинство моих приложений для OSX, которые я сейчас пишу, поддерживают только в OSX 10.8. Между тем, в случае сбоев недавно я узнал, что странные вещи могут появляться в неправильном месте в вашем коде (неправильно), если вы используете API-интерфейсы C и неправильно выделяете память. Например, если вы используете такие функции, как sprintf и другие функции * f C, которые работают с char. Недавно я использовал char *s;
вместо char s[1000];
, и мое приложение неожиданно рухнуло в механизме IPC! Я получил плохой доступ к сообщениям темы. Когда я исправил объявление char, мой IPC неожиданно начал работать без сбоев. Иди разберись!
Если это не исправит вас, то вы, вероятно, смотрите на сокеты, перегруженные количеством соединений, которые вы делаете. Для этого вам, вероятно, нужно переосмыслить то, как вы спроектировали свое решение, и найти лучшую стратегию, которая реже подключается.