Cómo abrir y cerrar correctamente un NSStream en otro hilo

Tengo una aplicación que se conecta a un server que usa NSStream en otro subprocess. La aplicación también cierra la connection en caso de que el usuario decida cerrar la session. El problema es que nunca puedo cerrar con éxito la transmisión o el hilo al tener la desconnection del usuario. A continuación, se muestra mi código sobre cómo me acerco creando un hilo para mi networking e intentando cerrar la secuencia:

+ (NSThread*)networkThread { static NSThread *networkThread = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ networkThread = [[NSThread alloc] initWithTarget:self selector:@selector(networkThreadMain:) object:nil]; [networkThread start]; }); return networkThread; } + (void)networkThreadMain:(id)sender { while (YES) { @autoreleasepool { [[NSRunLoop currentRunLoop] run]; } } } - (void)scheduleInThread:(id)sender { [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; [inputStream open]; } - (void)closeThread { [inputStream close]; [inputStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; [inputStream release]; inputStream = nil; } 

Llamada realizada al intentar conectar el flujo de input:

 [self performSelector:@selector(scheduleInThread:) onThread:[[self class] networkThread] withObject:nil waitUntilDone:YES]; 

Cualquier consejo es muy apreciado.