github.com/vugu/vugu@v0.3.5/domrender/renderer-js-default.go (about) 1 package domrender 2 3 import ( 4 "fmt" 5 6 "github.com/vugu/vugu" 7 ) 8 9 func (r *JSRenderer) sendEventWaitCh() { 10 11 if panicr := recover(); panicr != nil { 12 fmt.Println("handleRawDOMEvent caught panic", panicr) 13 // debug.PrintStack() 14 15 // in error case send false to tell event loop to exit 16 select { 17 case r.eventWaitCh <- false: 18 default: 19 } 20 return 21 22 } 23 24 // in normal case send true to the channel to tell the event loop it should render 25 select { 26 case r.eventWaitCh <- true: 27 default: 28 } 29 } 30 31 // Render is a render function. 32 func (r *JSRenderer) Render(buildResults *vugu.BuildResults) error { 33 34 // acquire read lock so events are not changing data while Render is in progress 35 r.eventRWMU.RLock() 36 defer r.eventRWMU.RUnlock() 37 38 err := r.render(buildResults) 39 return err 40 }