Clock.sync() sometimes responses with no TimeInterval
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- swift
- Ambito
- networking
Direzione di ricerca
Inizia in Clock.swift da sync() e in NTPClient da private func offset(from responses: [[NTPPacket]]) throws -> TimeInterval. Traccia il modo in cui il filtraggio di originTime e kMaximumResultDispersion influisce sulla closure di completamento, confrontando il comportamento con la prima closure. Il lavoro è completato quando il risultato di sync rimane valido se una risposta finale tardiva viene filtrata, con il comportamento di media previsto stabilito e coperto dai test pertinenti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I sometimes have problems with Clock.sync() not returning a TimeInterval in the completion closure. After an analysis I found out that the problem lies in the NTPClient in private func offset(from responses: [[NTPPacket]]) throws -> TimeInterval. All server responses are filtered here by originTime (which is afaik ok). Now it can happen that certain responses take longer than 10 seconds (= kMaximumResultDispersion), especially if I use the default NTP server(s) time.apple.com with the default 4 samples. If this happens with the last response, no TimeInterval is returned. Although validate timeIntervals might have been returned beforehand. Is this done on purpose or would it also be possible to save the offsets in the sync() function (Clock.swift) and then return an average value at the end?
If I use the first closure I always get a valid offset (maybe there are cases where this response is also filtered).
- Lingua principale
- Swift
- Stelle
- 700
- Fork
- 102
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di MobileNativeFoundation/Kronos
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
MobileNativeFoundation/Kronos#119 ·
-
Support for mac?Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
MobileNativeFoundation/Kronos#116 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
MobileNativeFoundation/Kronos#109 · 1 reazione ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
MobileNativeFoundation/Kronos#108 · 1 commento ·
-
Async/AwaitAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
MobileNativeFoundation/Kronos#101 · 1 commento ·
Tutte le issue di MobileNativeFoundation/Kronos
Issue simili
-
bug good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
marcovisona/arca#5 ·
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
luis-guillen/airy#2 ·
-
accessibility bug medium-priority mobile
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
lognorman20/monaco#6247 ·
-
documentation windows
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
521xueweihan/HelloGitHub#4060 ·