Мое приложение копирует файлы с использованием методов dispatch_io_read()
и dispatch_io_write()
, предоставленных компанией Grand Central Dispatch от Apple OSX 10.10.Когда безопасно вызывать dispatch_io_close() при использовании Grand Central Dispatch?
Я предоставляю своим пользователям кнопку «отменить». Я реализовал это различными способами, используя dispatch_io_close(channel, DISPATCH_IO_STOP)
, но каждый метод, который я пробовал, приводит к случайным сбоям с сообщениями, такими как «BUG IN LIBDISPATCH: Over-release объекта», «BUG IN LIBDISPATCH: Resurrection of a object» или аналогичный аварии, связанной с проблемами сохранения/выпуска.
я получаю один и тот же тип аварии, если я просто close()
файловых дескрипторов файлов я чтение/записи, когда пользователь попадет «отмена», или если я позвоню dispatch_io_close(channel, DISPATCH_IO_STOP)
изнутри очистки обработчиков dispatch_io_read()
и dispatch_io_write()
.
Как безопасно отменить операции ввода-вывода GCD?
Невозможно ответить на ваш вопрос, не видя существующего кода. –