akiyosi / goneovim

A GUI frontend for neovim.
MIT License
2.35k stars 60 forks source link

Data race problem when goneovim startup #512

Closed akiyosi closed 4 months ago

akiyosi commented 6 months ago

All goroutine stack is the following;

==================
WARNING: DATA RACE
Read at 0x00c00038a088 by goroutine 24:
  github.com/akiyosi/goneovim/editor.(*Editor).toEmmitGeometrySignal()
      /Users/akiyoshi/goneovim/editor/editor.go:677 +0x57
  github.com/akiyosi/goneovim/editor.(*Editor).connectAppSignals.func5()
      /Users/akiyoshi/goneovim/editor/editor.go:640 +0x3d

Previous write at 0x00c00038a088 by main goroutine:
  github.com/akiyosi/goneovim/editor.(*Editor).resizeMainWindow()
      /Users/akiyoshi/goneovim/editor/editor.go:703 +0x377
  github.com/akiyosi/goneovim/editor.(*Editor).bindResizeEvent.func1()
      /Users/akiyoshi/goneovim/editor/editor.go:394 +0xb9
  github.com/akiyosi/goqtframelesswindow.callbackQFramelessWindow1d329f_ResizeEvent()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/goqtframelesswindow/moc.go:1137 +0xf6
  _cgoexp_d76801a3c3e6_callbackQFramelessWindow1d329f_ResizeEvent()
      _cgo_gotypes.go:2062 +0x72
  runtime.cgocallbackg1()
      /Users/akiyoshi/.goenv/versions/1.21.4/src/runtime/cgocall.go:329 +0x26f
  github.com/akiyosi/goqtframelesswindow.(*QFramelessWindow).EventDefault.func1()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/goqtframelesswindow/moc.go:504 +0x12b
  github.com/akiyosi/goqtframelesswindow.(*QFramelessWindow).EventDefault()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/goqtframelesswindow/moc.go:504 +0x78
  github.com/akiyosi/goqtframelesswindow.callbackQFramelessWindow1d329f_Event()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/goqtframelesswindow/moc.go:499 +0x193
  _cgoexp_d76801a3c3e6_callbackQFramelessWindow1d329f_Event()
      _cgo_gotypes.go:1669 +0x73
  runtime.cgocallbackg1()
      /Users/akiyoshi/.goenv/versions/1.21.4/src/runtime/cgocall.go:329 +0x26f
  github.com/akiyosi/qt/widgets.(*QWidget).Resize2.func1()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/qt/widgets/widgets.go:105655 +0xce
  github.com/akiyosi/qt/widgets.(*QWidget).Resize2()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/qt/widgets/widgets.go:105655 +0x69
  github.com/akiyosi/goneovim/editor.(*Workspace).updateApplicationWindowSize()
      /Users/akiyoshi/goneovim/editor/workspace.go:905 +0xcb9
  github.com/akiyosi/goneovim/editor.(*Screen).gridResize()
      /Users/akiyoshi/goneovim/editor/screen.go:709 +0xc0c
  github.com/akiyosi/goneovim/editor.(*Workspace).handleRedraw()
      /Users/akiyoshi/goneovim/editor/workspace.go:1015 +0x3233
  github.com/akiyosi/goneovim/editor.(*Workspace).registerSignal.func1()
      /Users/akiyoshi/goneovim/editor/workspace.go:315 +0x1c4
  github.com/akiyosi/goneovim/editor.callbackneovimSignala603f1_RedrawSignal()
      /Users/akiyoshi/goneovim/editor/moc.go:2739 +0xa4
  _cgoexp_215edc5315fb_callbackneovimSignala603f1_RedrawSignal()
      _cgo_gotypes.go:8191 +0x47
  runtime.cgocallbackg1()
      /Users/akiyoshi/.goenv/versions/1.21.4/src/runtime/cgocall.go:329 +0x26f
  github.com/akiyosi/goneovim/editor.(*neovimSignal).EventDefault.func1()
      /Users/akiyoshi/goneovim/editor/moc.go:3233 +0x12b
  github.com/akiyosi/goneovim/editor.(*neovimSignal).EventDefault()
      /Users/akiyoshi/goneovim/editor/moc.go:3233 +0x78
  github.com/akiyosi/goneovim/editor.callbackneovimSignala603f1_Event()
      /Users/akiyoshi/goneovim/editor/moc.go:3228 +0x193
  _cgoexp_215edc5315fb_callbackneovimSignala603f1_Event()
      _cgo_gotypes.go:8286 +0x73
  runtime.cgocallbackg1()
      /Users/akiyoshi/.goenv/versions/1.21.4/src/runtime/cgocall.go:329 +0x26f
  github.com/akiyosi/qt/widgets.QApplication_Exec()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/qt/widgets/widgets.go:9715 +0x2a
  github.com/akiyosi/goneovim/editor.InitEditor()
      /Users/akiyoshi/goneovim/editor/editor.go:326 +0x1f55
  main.main()
      /Users/akiyoshi/goneovim/cmd/goneovim/main.go:46 +0x3fa

Goroutine 24 (running) created at:
  github.com/akiyosi/goneovim/editor.(*Editor).connectAppSignals()
      /Users/akiyoshi/goneovim/editor/editor.go:640 +0x2f8
  github.com/akiyosi/goneovim/editor.InitEditor()
      /Users/akiyoshi/goneovim/editor/editor.go:319 +0x1df9
  main.main()
      /Users/akiyoshi/goneovim/cmd/goneovim/main.go:46 +0x3fa
==================
==================
WARNING: DATA RACE
Read at 0x00c000652cd0 by goroutine 24:
  github.com/akiyosi/goneovim/editor.(*Editor).toEmmitGeometrySignal()
      /Users/akiyoshi/goneovim/editor/editor.go:681 +0x9e
  github.com/akiyosi/goneovim/editor.(*Editor).connectAppSignals.func5()
      /Users/akiyoshi/goneovim/editor/editor.go:640 +0x3d

Previous write at 0x00c000652cd0 by main goroutine:
  time.NewTimer()
      /Users/akiyoshi/.goenv/versions/1.21.4/src/time/sleep.go:89 +0x9e
  github.com/akiyosi/goneovim/editor.(*Editor).resizeMainWindow()
      /Users/akiyoshi/goneovim/editor/editor.go:703 +0x346
  github.com/akiyosi/goneovim/editor.(*Editor).bindResizeEvent.func1()
      /Users/akiyoshi/goneovim/editor/editor.go:394 +0xb9
  github.com/akiyosi/goqtframelesswindow.callbackQFramelessWindow1d329f_ResizeEvent()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/goqtframelesswindow/moc.go:1137 +0xf6
  _cgoexp_d76801a3c3e6_callbackQFramelessWindow1d329f_ResizeEvent()
      _cgo_gotypes.go:2062 +0x72
  runtime.cgocallbackg1()
      /Users/akiyoshi/.goenv/versions/1.21.4/src/runtime/cgocall.go:329 +0x26f
  github.com/akiyosi/goqtframelesswindow.(*QFramelessWindow).EventDefault.func1()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/goqtframelesswindow/moc.go:504 +0x12b
  github.com/akiyosi/goqtframelesswindow.(*QFramelessWindow).EventDefault()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/goqtframelesswindow/moc.go:504 +0x78
  github.com/akiyosi/goqtframelesswindow.callbackQFramelessWindow1d329f_Event()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/goqtframelesswindow/moc.go:499 +0x193
  _cgoexp_d76801a3c3e6_callbackQFramelessWindow1d329f_Event()
      _cgo_gotypes.go:1669 +0x73
  runtime.cgocallbackg1()
      /Users/akiyoshi/.goenv/versions/1.21.4/src/runtime/cgocall.go:329 +0x26f
  github.com/akiyosi/qt/widgets.(*QWidget).Resize2.func1()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/qt/widgets/widgets.go:105655 +0xce
  github.com/akiyosi/qt/widgets.(*QWidget).Resize2()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/qt/widgets/widgets.go:105655 +0x69
  github.com/akiyosi/goneovim/editor.(*Workspace).updateApplicationWindowSize()
      /Users/akiyoshi/goneovim/editor/workspace.go:905 +0xcb9
  github.com/akiyosi/goneovim/editor.(*Screen).gridResize()
      /Users/akiyoshi/goneovim/editor/screen.go:709 +0xc0c
  github.com/akiyosi/goneovim/editor.(*Workspace).handleRedraw()
      /Users/akiyoshi/goneovim/editor/workspace.go:1015 +0x3233
  github.com/akiyosi/goneovim/editor.(*Workspace).registerSignal.func1()
      /Users/akiyoshi/goneovim/editor/workspace.go:315 +0x1c4
  github.com/akiyosi/goneovim/editor.callbackneovimSignala603f1_RedrawSignal()
      /Users/akiyoshi/goneovim/editor/moc.go:2739 +0xa4
  _cgoexp_215edc5315fb_callbackneovimSignala603f1_RedrawSignal()
      _cgo_gotypes.go:8191 +0x47
  runtime.cgocallbackg1()
      /Users/akiyoshi/.goenv/versions/1.21.4/src/runtime/cgocall.go:329 +0x26f
  github.com/akiyosi/goneovim/editor.(*neovimSignal).EventDefault.func1()
      /Users/akiyoshi/goneovim/editor/moc.go:3233 +0x12b
  github.com/akiyosi/goneovim/editor.(*neovimSignal).EventDefault()
      /Users/akiyoshi/goneovim/editor/moc.go:3233 +0x78
  github.com/akiyosi/goneovim/editor.callbackneovimSignala603f1_Event()
      /Users/akiyoshi/goneovim/editor/moc.go:3228 +0x193
  _cgoexp_215edc5315fb_callbackneovimSignala603f1_Event()
      _cgo_gotypes.go:8286 +0x73
  runtime.cgocallbackg1()
      /Users/akiyoshi/.goenv/versions/1.21.4/src/runtime/cgocall.go:329 +0x26f
  github.com/akiyosi/qt/widgets.QApplication_Exec()
      /Users/akiyoshi/goneovim/vendor/github.com/akiyosi/qt/widgets/widgets.go:9715 +0x2a
  github.com/akiyosi/goneovim/editor.InitEditor()
      /Users/akiyoshi/goneovim/editor/editor.go:326 +0x1f55
  main.main()
      /Users/akiyoshi/goneovim/cmd/goneovim/main.go:46 +0x3fa

Goroutine 24 (running) created at:
  github.com/akiyosi/goneovim/editor.(*Editor).connectAppSignals()
      /Users/akiyoshi/goneovim/editor/editor.go:640 +0x2f8
  github.com/akiyosi/goneovim/editor.InitEditor()
      /Users/akiyoshi/goneovim/editor/editor.go:319 +0x1df9
  main.main()
      /Users/akiyoshi/goneovim/cmd/goneovim/main.go:46 +0x3fa
==================
akiyosi commented 4 months ago

It might have been fixed.