deleteSession cleans up a given session, either because the registration completed successfully, or because a given timeout (default: 5min) was reached.
(sessionID string)
| 112 | // deleteSession cleans up a given session, either because the registration completed |
| 113 | // successfully, or because a given timeout (default: 5min) was reached. |
| 114 | func (d *sessionsDict) deleteSession(sessionID string) { |
| 115 | d.Lock() |
| 116 | defer d.Unlock() |
| 117 | delete(d.params, sessionID) |
| 118 | delete(d.sessions, sessionID) |
| 119 | delete(d.deleteSessionToDeviceID, sessionID) |
| 120 | delete(d.sessionCompletedResult, sessionID) |
| 121 | // stop the timer, e.g. because the registration was completed |
| 122 | if t, ok := d.timer[sessionID]; ok { |
| 123 | if !t.Stop() { |
| 124 | select { |
| 125 | case <-t.C: |
| 126 | default: |
| 127 | } |
| 128 | } |
| 129 | delete(d.timer, sessionID) |
| 130 | } |
| 131 | } |
| 132 | |
| 133 | func newSessionsDict() *sessionsDict { |
| 134 | return &sessionsDict{ |