- commit
- 5e9a49518602130a829eb5ad0dc30d3081c763fa
- parent
- 377b516fa93e782ebcf990418c6ff3a1a632744e
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2020-03-25 05:36
refactor: rm getTopic because we actually want different things to happen
Diffstat
| M | via.go | 21 | ++++++++++++--------- |
1 files changed, 12 insertions, 9 deletions
diff --git a/via.go b/via.go
@@ -26,7 +26,7 @@ var mux = &sync.RWMutex{}
26 26 var topics = make(map[string]Topic)
27 27 var verbose = false
28 28
29 -1 func getTopic(key string) Topic {
-1 29 func pushChannel(key string, ch chan []byte) {
30 30 mux.RLock()
31 31 topic, ok := topics[key]
32 32 mux.RUnlock()
@@ -40,19 +40,15 @@ func getTopic(key string) Topic {
40 40 mux.Unlock()
41 41 }
42 42
43 -1 return topic
44 -1 }
45 -1
46 -1 func pushChannel(key string, ch chan []byte) {
47 -1 topic := getTopic(key)
48 -1
49 43 topic.Lock()
50 44 topic.channels[ch] = true
51 45 topic.Unlock()
52 46 }
53 47
54 48 func popChannel(key string, ch chan []byte) {
55 -1 topic := getTopic(key)
-1 49 mux.RLock()
-1 50 topic := topics[key]
-1 51 mux.RUnlock()
56 52
57 53 topic.Lock()
58 54 delete(topic.channels, ch)
@@ -76,7 +72,14 @@ func post(w http.ResponseWriter, r *http.Request) {
76 72 return
77 73 }
78 74
79 -1 topic := getTopic(r.URL.Path)
-1 75 mux.RLock()
-1 76 topic, ok := topics[key]
-1 77 mux.RUnlock()
-1 78
-1 79 if !ok {
-1 80 return
-1 81 }
-1 82
80 83 topic.RLock()
81 84 defer topic.RUnlock()
82 85