mirror of
https://github.com/maxgoedjen/secretive.git
synced 2025-04-10 17:47:19 +00:00
Add concurrency warnings.
This commit is contained in:
parent
7c5e8c7aca
commit
d727f77eac
@ -20,12 +20,14 @@ extension SmartCard {
|
|||||||
/// Initializes a Store.
|
/// Initializes a Store.
|
||||||
public init() {
|
public init() {
|
||||||
tokenID = watcher.nonSecureEnclaveTokens.first
|
tokenID = watcher.nonSecureEnclaveTokens.first
|
||||||
watcher.setInsertionHandler { string in
|
watcher.setInsertionHandler { [reload = reloadSecretsInternal] string in
|
||||||
guard self.tokenID == nil else { return }
|
guard self.tokenID == nil else { return }
|
||||||
guard !string.contains("setoken") else { return }
|
guard !string.contains("setoken") else { return }
|
||||||
|
|
||||||
self.tokenID = string
|
self.tokenID = string
|
||||||
self.reloadSecrets()
|
DispatchQueue.main.async {
|
||||||
|
reload()
|
||||||
|
}
|
||||||
self.watcher.addRemovalHandler(self.smartcardRemoved, forTokenID: string)
|
self.watcher.addRemovalHandler(self.smartcardRemoved, forTokenID: string)
|
||||||
}
|
}
|
||||||
if let tokenID = tokenID {
|
if let tokenID = tokenID {
|
||||||
@ -106,15 +108,7 @@ extension SmartCard {
|
|||||||
|
|
||||||
/// Reloads all secrets from the store.
|
/// Reloads all secrets from the store.
|
||||||
public func reloadSecrets() {
|
public func reloadSecrets() {
|
||||||
// DispatchQueue.main.async {
|
reloadSecretsInternal()
|
||||||
// self.isAvailable = self.tokenID != nil
|
|
||||||
// let before = self.secrets
|
|
||||||
// self.secrets.removeAll()
|
|
||||||
// self.loadSecrets()
|
|
||||||
// if self.secrets != before {
|
|
||||||
// NotificationCenter.default.post(name: .secretStoreReloaded, object: self)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -123,6 +117,16 @@ extension SmartCard {
|
|||||||
|
|
||||||
extension SmartCard.Store {
|
extension SmartCard.Store {
|
||||||
|
|
||||||
|
@Sendable private func reloadSecretsInternal() {
|
||||||
|
self.isAvailable = self.tokenID != nil
|
||||||
|
let before = self.secrets
|
||||||
|
self.secrets.removeAll()
|
||||||
|
self.loadSecrets()
|
||||||
|
if self.secrets != before {
|
||||||
|
NotificationCenter.default.post(name: .secretStoreReloaded, object: self)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Resets the token ID and reloads secrets.
|
/// Resets the token ID and reloads secrets.
|
||||||
/// - Parameter tokenID: The ID of the token that was removed.
|
/// - Parameter tokenID: The ID of the token that was removed.
|
||||||
private func smartcardRemoved(for tokenID: String? = nil) {
|
private func smartcardRemoved(for tokenID: String? = nil) {
|
||||||
|
Loading…
Reference in New Issue
Block a user