| log.Fatal("session job count cannot be negative, problem session") | log.Fatal("session job count cannot be negative, problem session") | ||||
| } | } | ||||
| } else { | } else { | ||||
| log.Println(d) | |||||
| log.Fatal("When job done, we canot find proper session") | log.Fatal("When job done, we canot find proper session") | ||||
| } | } | ||||
| } | } | ||||
| //worker thread | //worker thread | ||||
| func (m *SessionManager) startJob(openID string) { | func (m *SessionManager) startJob(openID string) { | ||||
| log.Println("start job worker...") | log.Println("start job worker...") | ||||
| s := m.sessions[openID] | |||||
| jobFinished := workDone{openID, 0} | jobFinished := workDone{openID, 0} | ||||
| //process all jobs in the channel | //process all jobs in the channel | ||||
| hasJob := true | hasJob := true | ||||
| for hasJob { | for hasJob { | ||||
| select { | select { | ||||
| case v := <-s.jobs: | |||||
| case v := <-m.sessions[openID].jobs: | |||||
| if v.header.FromUserName != openID { | |||||
| log.Println("Error: Weird Message below ...") | |||||
| log.Println(v) | |||||
| log.Fatalf("Error: worker thread for %s, see different id=%s \n", openID, v.header.FromUserName) | |||||
| } | |||||
| log.Println(" Processing job..") | log.Println(" Processing job..") | ||||
| log.Println(v) | log.Println(v) | ||||
| time.Sleep(5 * time.Second) | time.Sleep(5 * time.Second) |