Я использую (и должен использовать) сторонний фреймворк, для которого у меня нет исходного кода. Сторонняя платформа обрабатывает создание аутентифицированного соединения клиент/сервер и возвращает пару открытых NSStreams.
Процесс создания потока, согласно документации Apple, таков: выделение/инициализация, установка делегата, планирование в цикле выполнения и открытие.Документы Apple идут еще дальше, говоря: «Никогда не следует пытаться получить доступ к запланированному потоку из потока, отличного от того, который владеет циклом выполнения потока». https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Streams/Articles/ReadingInputStreams.html#//apple_ref/doc/uid/20002273-1001844
Процесс удаления потока есть: закрыть, внепланово, выпустить.
Если кто-то создает поток самостоятельно, становится ясно, где поток был запланирован. Если сторонний фреймворк создает поток, можно не знать, где поток был запланирован.
Глядя на документацию, которую я нашел, я не нашел способа программно определить NSRunLoop и NSThread, с которыми связан открытый NSStream. Есть ли способ определить эту информацию во время выполнения?