CFWriteStreamClose () очищается? - PullRequest
       17

CFWriteStreamClose () очищается?

3 голосов
/ 07 декабря 2011

Предположим, у вас есть CFWriteStream, на который вы звоните CFWriteStreamClose() сразу после вызова CFWriteStreamWrite().Оба вызова осуществляются в одном потоке.Будет ли операция закрытия гарантировать, что любые байты, записанные / буферизованные потоком, действительно будут отправлены получателю до того, как поток будет уничтожен?

Короче говоря, вызов CFWriteStreamClose() очищает поток?

1 Ответ

2 голосов
/ 07 декабря 2011

Согласно документации, нет, это не так.Это «прекращает поток байтов» в потоке.Хотя CFWriteStreamWrite является синхронным, это не гарантирует, что все байты, которые вы хотите записать, будут записаны за один вызов.Таким образом, он возвращает количество фактически записанных байтов;ваша задача - продолжать вызывать его, пока ваши данные не будут исчерпаны или вы не решите прекратить их выполнение.

Вызов функции закрытия предназначен для очистки любых ресурсов, связанных с потоком.

...