Преглед на файлове

Merge pull request #615 from slingamn/sessions_optimization

optimize Sessions() at the expense of AddSession()
tags/v1.2.0-rc1
Daniel Oaks преди 4 години
родител
ревизия
014a5fe63c
No account linked to committer's email address
променени са 1 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 5
    3
      irc/getters.go

+ 5
- 3
irc/getters.go Целия файл

@@ -43,8 +43,7 @@ func (server *Server) Languages() (lm *languages.Manager) {
43 43
 
44 44
 func (client *Client) Sessions() (sessions []*Session) {
45 45
 	client.stateMutex.RLock()
46
-	sessions = make([]*Session, len(client.sessions))
47
-	copy(sessions, client.sessions)
46
+	sessions = client.sessions
48 47
 	client.stateMutex.RUnlock()
49 48
 	return
50 49
 }
@@ -102,7 +101,10 @@ func (client *Client) AddSession(session *Session) (success bool) {
102 101
 	}
103 102
 	// success, attach the new session to the client
104 103
 	session.client = client
105
-	client.sessions = append(client.sessions, session)
104
+	newSessions := make([]*Session, len(client.sessions)+1)
105
+	copy(newSessions, client.sessions)
106
+	newSessions[len(newSessions)-1] = session
107
+	client.sessions = newSessions
106 108
 	return true
107 109
 }
108 110
 

Loading…
Отказ
Запис