summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2017-05-05 10:13:48 +0800
committerLunny Xiao <xiaolunwen@gmail.com>2017-05-05 10:13:48 +0800
commit36f02c0c329760c556dfd143c3e9def5416c9640 (patch)
tree3b917be0d51dbd4221e2180725b3b3af11fcdd8e
parenta503947fba7b9cd81bf52305c58f11a4a0d93df5 (diff)
downloadgitea-36f02c0c329760c556dfd143c3e9def5416c9640.tar.gz
gitea-36f02c0c329760c556dfd143c3e9def5416c9640.zip
fix potential sqlite lock
-rw-r--r--models/webhook.go16
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)
}