diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2017-05-05 10:13:48 +0800 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2017-05-05 10:13:48 +0800 |
commit | 36f02c0c329760c556dfd143c3e9def5416c9640 (patch) | |
tree | 3b917be0d51dbd4221e2180725b3b3af11fcdd8e | |
parent | a503947fba7b9cd81bf52305c58f11a4a0d93df5 (diff) | |
download | gitea-36f02c0c329760c556dfd143c3e9def5416c9640.tar.gz gitea-36f02c0c329760c556dfd143c3e9def5416c9640.zip |
fix potential sqlite lock
-rw-r--r-- | models/webhook.go | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/models/webhook.go b/models/webhook.go index 8cd2b7dd43..3fb1e57e78 100644 --- a/models/webhook.go +++ b/models/webhook.go @@ -612,18 +612,16 @@ func (t *HookTask) deliver() { // TODO: shoot more hooks at same time. func DeliverHooks() { tasks := make([]*HookTask, 0, 10) - x. - Where("is_delivered=?", false). - Iterate(new(HookTask), - func(idx int, bean interface{}) error { - t := bean.(*HookTask) - t.deliver() - tasks = append(tasks, t) - return nil - }) + err := x.Where("is_delivered=?", false).Find(&tasks) + if err != nil { + log.Error(4, "DeliverHooks: %v", err) + return + } // Update hook task status. for _, t := range tasks { + t.deliver() + if err := UpdateHookTask(t); err != nil { log.Error(4, "UpdateHookTask [%d]: %v", t.ID, err) } |