Skip to content

Commit

Permalink
Merge pull request #1300 from nejtr0n/fix_data_race
Browse files Browse the repository at this point in the history
fix data race in models
  • Loading branch information
stephenafamo authored Sep 12, 2023
2 parents 96378fa + e646410 commit cc34619
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions templates/main/02_hooks.go.tpl
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
{{- if not .NoHooks -}}
{{- $alias := .Aliases.Table .Table.Name}}

var {{$alias.DownSingular}}AfterSelectMu sync.Mutex
var {{$alias.DownSingular}}AfterSelectHooks []{{$alias.UpSingular}}Hook

{{if or (not .Table.IsView) (.Table.ViewCapabilities.CanInsert) -}}
var {{$alias.DownSingular}}BeforeInsertMu sync.Mutex
var {{$alias.DownSingular}}BeforeInsertHooks []{{$alias.UpSingular}}Hook
var {{$alias.DownSingular}}AfterInsertMu sync.Mutex
var {{$alias.DownSingular}}AfterInsertHooks []{{$alias.UpSingular}}Hook
{{- end}}

{{if not .Table.IsView -}}
var {{$alias.DownSingular}}BeforeUpdateMu sync.Mutex
var {{$alias.DownSingular}}BeforeUpdateHooks []{{$alias.UpSingular}}Hook
var {{$alias.DownSingular}}AfterUpdateMu sync.Mutex
var {{$alias.DownSingular}}AfterUpdateHooks []{{$alias.UpSingular}}Hook

var {{$alias.DownSingular}}BeforeDeleteMu sync.Mutex
var {{$alias.DownSingular}}BeforeDeleteHooks []{{$alias.UpSingular}}Hook
var {{$alias.DownSingular}}AfterDeleteMu sync.Mutex
var {{$alias.DownSingular}}AfterDeleteHooks []{{$alias.UpSingular}}Hook
{{- end}}

{{if or (not .Table.IsView) (.Table.ViewCapabilities.CanUpsert) -}}
var {{$alias.DownSingular}}BeforeUpsertMu sync.Mutex
var {{$alias.DownSingular}}BeforeUpsertHooks []{{$alias.UpSingular}}Hook
var {{$alias.DownSingular}}AfterUpsertMu sync.Mutex
var {{$alias.DownSingular}}AfterUpsertHooks []{{$alias.UpSingular}}Hook
{{- end}}

Expand Down Expand Up @@ -184,28 +193,46 @@ func (o *{{$alias.UpSingular}}) doAfterUpsertHooks({{if .NoContext}}exec boil.Ex
func Add{{$alias.UpSingular}}Hook(hookPoint boil.HookPoint, {{$alias.DownSingular}}Hook {{$alias.UpSingular}}Hook) {
switch hookPoint {
case boil.AfterSelectHook:
{{$alias.DownSingular}}AfterSelectMu.Lock()
{{$alias.DownSingular}}AfterSelectHooks = append({{$alias.DownSingular}}AfterSelectHooks, {{$alias.DownSingular}}Hook)
{{$alias.DownSingular}}AfterSelectMu.Unlock()
{{- if or (not .Table.IsView) (.Table.ViewCapabilities.CanInsert)}}
case boil.BeforeInsertHook:
{{$alias.DownSingular}}BeforeInsertMu.Lock()
{{$alias.DownSingular}}BeforeInsertHooks = append({{$alias.DownSingular}}BeforeInsertHooks, {{$alias.DownSingular}}Hook)
{{$alias.DownSingular}}BeforeInsertMu.Unlock()
case boil.AfterInsertHook:
{{$alias.DownSingular}}AfterInsertMu.Lock()
{{$alias.DownSingular}}AfterInsertHooks = append({{$alias.DownSingular}}AfterInsertHooks, {{$alias.DownSingular}}Hook)
{{$alias.DownSingular}}AfterInsertMu.Unlock()
{{- end}}
{{- if not .Table.IsView}}
case boil.BeforeUpdateHook:
{{$alias.DownSingular}}BeforeUpdateMu.Lock()
{{$alias.DownSingular}}BeforeUpdateHooks = append({{$alias.DownSingular}}BeforeUpdateHooks, {{$alias.DownSingular}}Hook)
{{$alias.DownSingular}}BeforeUpdateMu.Unlock()
case boil.AfterUpdateHook:
{{$alias.DownSingular}}AfterUpdateMu.Lock()
{{$alias.DownSingular}}AfterUpdateHooks = append({{$alias.DownSingular}}AfterUpdateHooks, {{$alias.DownSingular}}Hook)
{{$alias.DownSingular}}AfterUpdateMu.Unlock()
case boil.BeforeDeleteHook:
{{$alias.DownSingular}}BeforeDeleteMu.Lock()
{{$alias.DownSingular}}BeforeDeleteHooks = append({{$alias.DownSingular}}BeforeDeleteHooks, {{$alias.DownSingular}}Hook)
{{$alias.DownSingular}}BeforeDeleteMu.Unlock()
case boil.AfterDeleteHook:
{{$alias.DownSingular}}AfterDeleteMu.Lock()
{{$alias.DownSingular}}AfterDeleteHooks = append({{$alias.DownSingular}}AfterDeleteHooks, {{$alias.DownSingular}}Hook)
{{$alias.DownSingular}}AfterDeleteMu.Unlock()
{{- end}}
{{- if or (not .Table.IsView) (.Table.ViewCapabilities.CanInsert)}}
case boil.BeforeUpsertHook:
{{$alias.DownSingular}}BeforeUpsertMu.Lock()
{{$alias.DownSingular}}BeforeUpsertHooks = append({{$alias.DownSingular}}BeforeUpsertHooks, {{$alias.DownSingular}}Hook)
{{$alias.DownSingular}}BeforeUpsertMu.Unlock()
case boil.AfterUpsertHook:
{{$alias.DownSingular}}AfterUpsertMu.Lock()
{{$alias.DownSingular}}AfterUpsertHooks = append({{$alias.DownSingular}}AfterUpsertHooks, {{$alias.DownSingular}}Hook)
{{$alias.DownSingular}}AfterUpsertMu.Unlock()
{{- end}}
}
}
Expand Down

0 comments on commit cc34619

Please sign in to comment.