Описание тега dispatchsemaphore
2
ответа
Как я могу использовать DispatchSemaphore с закрытием
У меня есть значение, которое выглядит так lazy var authHeaders: [String: String] = { if shouldTokenBeRefreshed() { let semaphore = DispatchSemaphore(value: 0) refreshTokens { semaphore.signal() } semaphore.wait() } return ["Authorization": "Bearer …
26 апр '19 в 15:41
0
ответов
Вложенность DispatchSemaphore
У меня проблемы с приведенным ниже рисунком. Мне нужно синхронно ждать начального асинхронного запроса, когда блок завершения в свою очередь вызывает список асинхронных вызовов, где каждый из асинхронных вызовов должен ждать завершения предыдущего, …
23 апр '19 в 09:12
1
ответ
Могу ли я использовать DispatchSemaphore для управления потоком в главной очереди?
Видимо, я могу использовать DispatchSemaphore, только если имею дело с разными очередями. Но что, если я хочу запустить асинхронный код в той же очереди (в данном случае основной очереди). let s = DispatchSemaphore(value : 0) DispatchQueue.main.asyn…
28 авг '19 в 16:14
3
ответа
проект инструмента командной строки быстрого семафора дождитесь завершения группы
Кажется , не ждите конца группы let oneSem_1 = DispatchSemaphore(value: 1) let semaphore = DispatchSemaphore(value: 4) let semaphoreEND = DispatchSemaphore(value: 0) var p=0 let group_2 = DispatchGroup() var t:[Int]=[] let MAX=1000000 for _ in 0..&l…
05 сен '19 в 12:19
1
ответ
Почему DispatchSemaphore.wait() блокирует этот обработчик завершения?
Итак, я играл с NetworkExtension, чтобы создать игрушечную реализацию VPN, и я столкнулся с проблемой с обработчиками завершения / асинхронно работающим кодом. Я расскажу вам о своих мыслях / истечениях срока действия и буду признателен за любые ука…
15 сен '19 в 19:41
2
ответа
Блокирует ли DispatchSemaphore на основе QOS весь пул потоков
let semaphore = DispatchSemaphore(value: 1) DispatchQueue.global(qos: .background) Означает ли это, что если я использую этот семафор, чтобы сделать конкретный блок ресурса доступным только для одного потока за раз, он будет блокировать все потоки, …
17 сен '19 в 15:42
1
ответ
Как работать Dispatch_Sempahore при первом сигнале вызова и
Можно ли сначала вызвать Signal () во время функции DispatchSemaphore, а позже - Wait()? Если вызывать Signal() N непрерывно, значение внутри становится N, или мне интересно, не вызывает ли несколько раз Signal () увеличение значения, когда Wait() н…
06 фев '20 в 06:22
0
ответов
Функция UIKeyInput deleteBackward() аварийно завершает работу из-за одновременного вызова insertText()
Я пишу приложение для машинного обучения, которое действует как клавиатура. Оно используетUIKeyInput и .target.insertText()метод для вставки результатов машинного обучения. Я реализовал ключ удаления, используяtarget?.deleteBackward()и имеют периоди…
01 апр '20 в 08:14
1
ответ
Как сделать общий ресурс потокобезопасным при использовании диспетчерской группы?
У меня есть класс User, который нужно обновлять каждый раз, когда пользователь открывает приложение. class User : NSObject, NSCoding { var vehicles : [Vehicles] var bankaccounts : [BankAccounts] var friends : [Friends] } На моем домашнем экране View…
15 июл '20 в 06:42
1
ответ
Должен ли семафор ждать, а сигнал всегда вызываться из отдельных очередей?
Я просматривал правильные детали реализации семафора с использованием GCD, когда меня смутил один оператор из (https://khanlou.com/2016/04/the-GCD-handbook/): "Вызов.wait() заблокирует поток до тех пор, пока Вызывается.signal(). Это означает, что.si…
28 май '20 в 00:00
1
ответ
Может ли диспетчерский семафор случайно зайти в тупик?
Скажем, у нас есть общий ресурс, к которому имеет доступ множество разных глобальных очередей, и ради этого вопроса мы используем семафор отправки для управления этим доступом. Когда одна из этих глобальных очередей сообщает семафору о необходимости…
28 май '20 в 03:03
3
ответа
Диспетчерский семафор для пользовательского интерфейса
Я хотел оживить альфа-версию uiviews, но не могу этого сделать. Он ведет себя странно и сообщает об ошибке, что изменения пользовательского интерфейса не рекомендуется запускать в фоновом потоке, но я не знаю, как заставить его работать в основном п…
22 апр '21 в 14:40
1
ответ
до сих пор не могу понять, как заказать асинхронные задачи для удаления пользователя
Поэтому я пытаюсь обеспечить выполнение набора асинхронных задач в определенном порядке при удалении пользователя. Итак, что я хочу: Проверьте, добавил ли пользователь гостей к своей покупке если у пользователя нет гостей или каких-либо покупок, вер…
26 апр '21 в 00:37
1
ответ
как исправить зависание приложения после вызова семафора
Я читал этот вопрос о зависаниях приложений и семафорах, и я попытался реализовать ответ в своем коде, но он все еще зависает в моем приложении, несмотря на вызов пользовательского интерфейса в основном потоке. Моя цель - предотвратить зависание при…
27 апр '21 в 01:39
0
ответов
dispatchGroup.notify вызывается перед выполнением группы - быстро - программно
я использую DispatchGroup, DispatchSemaphore а также DispatchQueue для добавления элементов модели в правильном порядке в массив. fileprivate func getLatestImageForUids(_ uids: [String], completion: @escaping () -> Void){ let db = Firestore.fires…
06 май '21 в 01:59
2
ответа
асинхронные запросы в Swift с использованием обработчика завершения и DispatchSemaphore
я пытаюсь сделать asyncзапросы на Swift с использованием Alamofire's completion handlerа также DispatchSemaphores . Мне нужно получить ответ, а затем вернуть его другому методу, так что в основном это мой код func customRequest(zipCode: String) ->…
06 янв '21 в 01:16
0
ответов
Как правильно освободить семафор?
Шаги для воспроизведения сбоя:если вызывается semaphore.wait(), а затем деинициализируется контроллер представления, которому он принадлежит, перед вызовом semaphore.signal, приложение аварийно завершает работу. Получение ошибки ниже при dinit класс…
13 янв '22 в 16:44
2
ответа
Невозможно разорвать цикл с семафором
Я пытаюсь добавить список асинхронных задач при использовании . func performStickerWorkItems(_ stickers: [String]) { let queue = DispatchQueue.global(qos: .background) workItem = DispatchWorkItem { [weak self] in for sticker in stickers { guard let …
11 окт '21 в 05:45
1
ответ
Безопасно ли сигнализировать семафор перед деинициализацией на всякий случай?
class SomeViewController: UIViewController { let semaphore = DispatchSemaphore(value: 1) deinit { semaphore.signal() // just in case? } func someLongAsyncTask() { semaphore.wait() ... semaphore.signal() // called much later } } Если я скажу семафор…
23 дек '21 в 02:40
0
ответов
Как сделать несколько асинхронных загрузок в хранилище Firebase?
У меня есть массив данных, которые я хочу загрузить в хранилище Firebase по порядку, поэтому URL-адреса загрузки, которые извлекаются, тоже в порядке. Я пытался использовать DispatchGroup и DispatchSemaphore для этого, но я предполагаю, что вставил …
30 мар '22 в 11:15