backend for xcvr appview
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

added some logging for strange nil pointer deref

rachel-mp4 ca2a6a5f 7a37be71

+15
+6
server/internal/model/channel.go
··· 49 49 cancel func() 50 50 signetBus chan types.SignetView 51 51 messageBus chan types.MessageView 52 + logger *log.Logger 52 53 } 53 54 54 55 func (m *Model) GetWSHandlerFrom(uri string) (http.HandlerFunc, error) { ··· 75 76 return nil, errors.New("Not a valid server") 76 77 } 77 78 if cm.streamModel == nil { 79 + m.logger.Deprintln("i'm making a server now") 78 80 ctx, cancel := context.WithCancel(context.Background()) 79 81 lsm := lexStreamModel{ 80 82 clients: make(map[*client]bool), ··· 83 85 cancel: cancel, 84 86 signetBus: make(chan types.SignetView, 10), 85 87 messageBus: make(chan types.MessageView, 10), 88 + logger: m.logger, 86 89 } 87 90 cm.streamModel = &lsm 88 91 go lsm.broadcaster() ··· 154 157 } 155 158 156 159 if sm.server == nil { 160 + m.logger.Deprintln("i think the server should exist, so i'm making it") 157 161 var err error 158 162 lastID := sm.lastID 159 163 initChan := make(chan lrcpb.Event_Init, 100) ··· 197 201 for { 198 202 select { 199 203 case <-ctx.Done(): 204 + m.logger.Deprintln("i'm a handleinitevent goroutine and my context is done") 200 205 return 201 206 case <-ticker.C: 202 207 m.mu.Lock() ··· 209 214 210 215 c := sm.server.Connected() 211 216 if c == 0 { 217 + m.logger.Deprintln("i think the server is empty! gonna break some things") 212 218 lastID, err := sm.server.Stop() 213 219 if err != nil { 214 220 m.mu.Unlock()
+9
server/internal/model/channelLexiconStream.go
··· 38 38 lsm.clientsmu.Unlock() 39 39 40 40 client.wsWriter(lsm.ctx) 41 + lsm.logger.Deprintln("i am a lex stream wshandler and i am exiting") 41 42 42 43 lsm.clientsmu.Lock() 43 44 delete(lsm.clients, client) 44 45 if len(lsm.clients) == 0 { 46 + lsm.logger.Deprintln("i think that there are no more clients, so i will terminate the stream model ok") 45 47 lsm.cancel() 46 48 m.uriMap[uri].streamModel = nil 47 49 } ··· 73 75 for { 74 76 select { 75 77 case <-lsm.ctx.Done(): 78 + lsm.logger.Deprintln("since lsm context ended, i am cleaning it up") 76 79 lsm.cleanUp() 77 80 return 78 81 case m, ok := <-lsm.messageBus: 79 82 if !ok { 83 + lsm.logger.Deprintln("since lsm message bus gave bad message, i am cleaning it up") 80 84 lsm.cleanUp() 81 85 return 82 86 } 83 87 lsm.broadcast(m) 84 88 case s, ok := <-lsm.signetBus: 85 89 if !ok { 90 + lsm.logger.Deprintln("since lsm signetbus gave bad message, i am cleaning it up") 86 91 lsm.cleanUp() 87 92 return 88 93 } ··· 112 117 } 113 118 } 114 119 120 + // should this be on lsm? 115 121 func (m *Model) BroadcastSignet(uri string, s types.Signet) { 116 122 lsm := m.uriMap[uri] 117 123 if lsm == nil { ··· 134 140 LrcId: s.MessageID, 135 141 AuthorHandle: s.AuthorHandle, 136 142 StartedAt: s.StartedAt, 143 + } 144 + if lsm.streamModel == nil { 145 + m.logger.Println("curious *watches the world burn*") 137 146 } 138 147 lsm.streamModel.signetBus <- sv 139 148 }