Fix bug in co refresh where contexts would be immediately cancelled
This commit is contained in:
+7
-7
@@ -46,7 +46,7 @@ func Page(data *core.FullData, remote *url.URL, title string) error {
|
|||||||
|
|
||||||
type refreshJob struct {
|
type refreshJob struct {
|
||||||
typ string // "feed" or "page"
|
typ string // "feed" or "page"
|
||||||
url url.URL
|
url *url.URL
|
||||||
}
|
}
|
||||||
|
|
||||||
// RefreshAll will check all feeds and pages in a core.FullData for updates
|
// RefreshAll will check all feeds and pages in a core.FullData for updates
|
||||||
@@ -74,16 +74,16 @@ func RefreshAll(data *core.FullData, numWorkers int) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// get all keys in maps
|
// get all keys in maps
|
||||||
feedKeys := make([]url.URL, 0, len(data.Feeds))
|
feedKeys := make([]*url.URL, 0, len(data.Feeds))
|
||||||
for k := range data.Feeds {
|
for k := range data.Feeds {
|
||||||
// we know that the keys are already validated uris, so no err
|
// we know that the keys are already validated uris, so no err
|
||||||
u, _ := url.ParseRequestURI(k)
|
u, _ := url.ParseRequestURI(k)
|
||||||
feedKeys = append(feedKeys, *u)
|
feedKeys = append(feedKeys, u)
|
||||||
}
|
}
|
||||||
pageKeys := make([]url.URL, 0, len(data.Pages))
|
pageKeys := make([]*url.URL, 0, len(data.Pages))
|
||||||
for k := range data.Pages {
|
for k := range data.Pages {
|
||||||
u, _ := url.ParseRequestURI(k)
|
u, _ := url.ParseRequestURI(k)
|
||||||
pageKeys = append(pageKeys, *u)
|
pageKeys = append(pageKeys, u)
|
||||||
}
|
}
|
||||||
data.RUnlock()
|
data.RUnlock()
|
||||||
|
|
||||||
@@ -109,9 +109,9 @@ func refreshWorker(wg *sync.WaitGroup, jobs <-chan refreshJob, returns chan<- er
|
|||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
for j := range jobs {
|
for j := range jobs {
|
||||||
if j.typ == "feed" {
|
if j.typ == "feed" {
|
||||||
returns <- Feed(data, &j.url, "")
|
returns <- Feed(data, j.url, "")
|
||||||
} else if j.typ == "page" {
|
} else if j.typ == "page" {
|
||||||
returns <- Page(data, &j.url, "")
|
returns <- Page(data, j.url, "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -28,8 +28,7 @@ import (
|
|||||||
|
|
||||||
// fetchGemini will make a request for a gemini resource
|
// fetchGemini will make a request for a gemini resource
|
||||||
func fetchGemini(remote string) (*gemini.Response, error) {
|
func fetchGemini(remote string) (*gemini.Response, error) {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(core.Timeout)*time.Second)
|
ctx, _ := context.WithTimeout(context.Background(), time.Duration(core.Timeout)*time.Second)
|
||||||
defer cancel()
|
|
||||||
client := &gemini.Client{}
|
client := &gemini.Client{}
|
||||||
resp, err := client.Get(ctx, remote)
|
resp, err := client.Get(ctx, remote)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user