summaryrefslogtreecommitdiff
path: root/workers.go
diff options
context:
space:
mode:
Diffstat (limited to 'workers.go')
-rw-r--r--workers.go37
1 files changed, 4 insertions, 33 deletions
diff --git a/workers.go b/workers.go
index 43e398d..4d646fd 100644
--- a/workers.go
+++ b/workers.go
@@ -14,32 +14,16 @@ import (
- manages urls channel.
*/
-// Packet accrues data as it passes through our concurrent
-// pipeline. Formerly the web crawler only transmitted [url.URL]'s,
-// but usingn a compound data type allows us to add URL
-// depth-tracking.
-type Packet struct {
- url url.URL
- depth int
-}
-
-// String implements the Stringer interface. We need this mainly
-// because a [url.URL]'s String method only works when that URL is a
-// pointer.
-func (p Packet) String() string {
- return fmt.Sprintf("[%d] %s", p.depth, &p.url)
-}
-
// workers launches a worker queue for crawling a given Web domain.
func workers(startURL url.URL, maxConcurrency, maxURLs int) {
- worklist := make(chan []Packet)
+ worklist := make(chan []packet)
// Unseen URLs.
- packets := make(chan Packet)
+ packets := make(chan packet)
go func() {
- startPacket := Packet{startURL, 0}
- worklist <- []Packet{startPacket}
+ startPacket := packet{startURL, 0}
+ worklist <- []packet{startPacket}
}()
var wg sync.WaitGroup
@@ -105,16 +89,3 @@ loop:
cancel()
wg.Wait()
}
-
-// convertToPackets converts the batch of URLs to a slice of Packet
-// structs, configuring each one with the given depth.
-func convertToPackets(batch []url.URL, depth int) []Packet {
- var ps []Packet
-
- for _, u := range batch {
- newPacket := Packet{u, depth}
- ps = append(ps, newPacket)
- }
-
- return ps
-}