Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MultiThreading] Avoid Static Initialization Order Fiasco #4307

Merged

Conversation

alxbilger
Copy link
Contributor

It happened to me in debug mode


By submitting this pull request, I acknowledge that
I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


Reviewers will merge this pull-request only if

  • it builds with SUCCESS for all platforms on the CI.
  • it does not generate new warnings.
  • it does not generate new unit test failures.
  • it does not generate new scene test failures.
  • it does not break API compatibility.
  • it is more than 1 week old (or has fast-merge label).

@alxbilger alxbilger added pr: fix Fix a bug pr: fast merge Minor change that can be merged without waiting for the 7 review days pr: status to review To notify reviewers to review this pull-request labels Nov 20, 2023
@alxbilger
Copy link
Contributor Author

[ci-build][with-all-tests]

@hugtalbot hugtalbot added this to the v24.06 milestone Nov 22, 2023
@fredroy fredroy added pr: status ready Approved a pull-request, ready to be squashed and removed pr: status to review To notify reviewers to review this pull-request labels Nov 27, 2023
@bakpaul bakpaul modified the milestones: v24.06, v23.12 Nov 29, 2023
@bakpaul bakpaul merged commit 8e1dca0 into sofa-framework:master Nov 29, 2023
15 checks passed
hugtalbot added a commit that referenced this pull request Dec 20, 2023
* Added projective and lagrangian suffix

* Reported changes to Cuda plugin

* Modify rest of the code to avoid warning from compatibility layer

* Add compatibility layer for deprecated header in CUDA

* add alias for compatibility layer in scene construction

* Report name modification to all scenes

* Revert Compat modification...

* [LinearAlgera, Core] Fix linking with LTO on MacOS/Clang (#4293)

Fix linking with LTO on macos

* [LinearSolver] Remove CSparse-based linear solvers (#4258)

* [LinearSolver.Direct] Remove CSparse based solvers

* Remove csparse extlib

* Fetchable CSparseSolvers plugin

* Remove references of SparseLUSolver

* Remove references to SparseCholeskySolver

* Remove csparse

* Try to fix on Linux

* Update the compat

* [LinearSolver.Direct] Remove CSparse based solvers

* Fix direct solver

* [GUI.Qt] Minor single-line cleaning (#4308)

Co-authored-by: erik pernod <erik.pernod@gmail.com>

* [Sofa.GUI.Qt] Add cmake module for QGLViewer (#4290)

* Add cmake module for QGLViewer

* Support library name for apt packages

* Fix qglviewer cmake finder module to first seach for a config cmake file.

* Update cmake/Modules/FindQGLViewer.cmake

Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>

---------

Co-authored-by: Frederick Roy <fredroy@users.noreply.github.com>
Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>

* [MultiThreading] Avoid Static Initialization Order Fiasco (#4307)

* [Core] Minor clean of DefaultAnimationLoop  (#4314)

* Remove unlogical use of visitor

* Delete unused methods

* [LinearSystem] Speedup computation of Jacobian matrices  (#4317)

* [LinearSystem] Speedup computation of Jacobian matrices in case both mstates are the same

* minor reformat to align calls to computeJacobiansFrom

* [SofaCUDA] FIX compilation SofaCUDA along with SparseGrid with Cuda12 (#4319)

* FIX compilation SofaCUDA along with SparseGrid with Cuda12

* Use a multiplication instead

* [Common] Add message to make the fetch mechanism less hidden (#4310)

* Add message to make it more clear

* slight modifications to be even more clear and add an error the dependency cannot be met

* [Collections] Remove reference to non-existing SofaSimulation (#4320)

remove ref to non-existent sofasimu

Co-authored-by: Paul Baksic <30337881+bakpaul@users.noreply.github.com>

* Remove repeating preffix from projective constraints

* Moved alias to original header

* Changed deprecation date

* add component change entry

* Change name following discussion with Hugo

* Change remaining scene with FixedConstraint

* remove last occurences in py files

* Changed the message display of sceneCheckUsingAlias when aliased component is in component change

* Fix factory

* Add alias creation when object in componentRenamed in factory

* Remove precedently added aliases

---------

Co-authored-by: Frederick Roy <fredroy@users.noreply.github.com>
Co-authored-by: Alex Bilger <alxbilger@users.noreply.github.com>
Co-authored-by: erik pernod <erik.pernod@gmail.com>
Co-authored-by: Olivier Roussel <olivier.roussel@inria.fr>
Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>
fredroy added a commit to fredroy/sofa that referenced this pull request Dec 21, 2023
)

* Added projective and lagrangian suffix

* Reported changes to Cuda plugin

* Modify rest of the code to avoid warning from compatibility layer

* Add compatibility layer for deprecated header in CUDA

* add alias for compatibility layer in scene construction

* Report name modification to all scenes

* Revert Compat modification...

* [LinearAlgera, Core] Fix linking with LTO on MacOS/Clang (sofa-framework#4293)

Fix linking with LTO on macos

* [LinearSolver] Remove CSparse-based linear solvers (sofa-framework#4258)

* [LinearSolver.Direct] Remove CSparse based solvers

* Remove csparse extlib

* Fetchable CSparseSolvers plugin

* Remove references of SparseLUSolver

* Remove references to SparseCholeskySolver

* Remove csparse

* Try to fix on Linux

* Update the compat

* [LinearSolver.Direct] Remove CSparse based solvers

* Fix direct solver

* [GUI.Qt] Minor single-line cleaning (sofa-framework#4308)

Co-authored-by: erik pernod <erik.pernod@gmail.com>

* [Sofa.GUI.Qt] Add cmake module for QGLViewer (sofa-framework#4290)

* Add cmake module for QGLViewer

* Support library name for apt packages

* Fix qglviewer cmake finder module to first seach for a config cmake file.

* Update cmake/Modules/FindQGLViewer.cmake

Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>

---------

Co-authored-by: Frederick Roy <fredroy@users.noreply.github.com>
Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>

* [MultiThreading] Avoid Static Initialization Order Fiasco (sofa-framework#4307)

* [Core] Minor clean of DefaultAnimationLoop  (sofa-framework#4314)

* Remove unlogical use of visitor

* Delete unused methods

* [LinearSystem] Speedup computation of Jacobian matrices  (sofa-framework#4317)

* [LinearSystem] Speedup computation of Jacobian matrices in case both mstates are the same

* minor reformat to align calls to computeJacobiansFrom

* [SofaCUDA] FIX compilation SofaCUDA along with SparseGrid with Cuda12 (sofa-framework#4319)

* FIX compilation SofaCUDA along with SparseGrid with Cuda12

* Use a multiplication instead

* [Common] Add message to make the fetch mechanism less hidden (sofa-framework#4310)

* Add message to make it more clear

* slight modifications to be even more clear and add an error the dependency cannot be met

* [Collections] Remove reference to non-existing SofaSimulation (sofa-framework#4320)

remove ref to non-existent sofasimu

Co-authored-by: Paul Baksic <30337881+bakpaul@users.noreply.github.com>

* Remove repeating preffix from projective constraints

* Moved alias to original header

* Changed deprecation date

* add component change entry

* Change name following discussion with Hugo

* Change remaining scene with FixedConstraint

* remove last occurences in py files

* Changed the message display of sceneCheckUsingAlias when aliased component is in component change

* Fix factory

* Add alias creation when object in componentRenamed in factory

* Remove precedently added aliases

---------

Co-authored-by: Frederick Roy <fredroy@users.noreply.github.com>
Co-authored-by: Alex Bilger <alxbilger@users.noreply.github.com>
Co-authored-by: erik pernod <erik.pernod@gmail.com>
Co-authored-by: Olivier Roussel <olivier.roussel@inria.fr>
Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>
hugtalbot added a commit to hugtalbot/sofa that referenced this pull request Jan 16, 2024
)

* Added projective and lagrangian suffix

* Reported changes to Cuda plugin

* Modify rest of the code to avoid warning from compatibility layer

* Add compatibility layer for deprecated header in CUDA

* add alias for compatibility layer in scene construction

* Report name modification to all scenes

* Revert Compat modification...

* [LinearAlgera, Core] Fix linking with LTO on MacOS/Clang (sofa-framework#4293)

Fix linking with LTO on macos

* [LinearSolver] Remove CSparse-based linear solvers (sofa-framework#4258)

* [LinearSolver.Direct] Remove CSparse based solvers

* Remove csparse extlib

* Fetchable CSparseSolvers plugin

* Remove references of SparseLUSolver

* Remove references to SparseCholeskySolver

* Remove csparse

* Try to fix on Linux

* Update the compat

* [LinearSolver.Direct] Remove CSparse based solvers

* Fix direct solver

* [GUI.Qt] Minor single-line cleaning (sofa-framework#4308)

Co-authored-by: erik pernod <erik.pernod@gmail.com>

* [Sofa.GUI.Qt] Add cmake module for QGLViewer (sofa-framework#4290)

* Add cmake module for QGLViewer

* Support library name for apt packages

* Fix qglviewer cmake finder module to first seach for a config cmake file.

* Update cmake/Modules/FindQGLViewer.cmake

Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>

---------

Co-authored-by: Frederick Roy <fredroy@users.noreply.github.com>
Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>

* [MultiThreading] Avoid Static Initialization Order Fiasco (sofa-framework#4307)

* [Core] Minor clean of DefaultAnimationLoop  (sofa-framework#4314)

* Remove unlogical use of visitor

* Delete unused methods

* [LinearSystem] Speedup computation of Jacobian matrices  (sofa-framework#4317)

* [LinearSystem] Speedup computation of Jacobian matrices in case both mstates are the same

* minor reformat to align calls to computeJacobiansFrom

* [SofaCUDA] FIX compilation SofaCUDA along with SparseGrid with Cuda12 (sofa-framework#4319)

* FIX compilation SofaCUDA along with SparseGrid with Cuda12

* Use a multiplication instead

* [Common] Add message to make the fetch mechanism less hidden (sofa-framework#4310)

* Add message to make it more clear

* slight modifications to be even more clear and add an error the dependency cannot be met

* [Collections] Remove reference to non-existing SofaSimulation (sofa-framework#4320)

remove ref to non-existent sofasimu

Co-authored-by: Paul Baksic <30337881+bakpaul@users.noreply.github.com>

* Remove repeating preffix from projective constraints

* Moved alias to original header

* Changed deprecation date

* add component change entry

* Change name following discussion with Hugo

* Change remaining scene with FixedConstraint

* remove last occurences in py files

* Changed the message display of sceneCheckUsingAlias when aliased component is in component change

* Fix factory

* Add alias creation when object in componentRenamed in factory

* Remove precedently added aliases

---------

Co-authored-by: Frederick Roy <fredroy@users.noreply.github.com>
Co-authored-by: Alex Bilger <alxbilger@users.noreply.github.com>
Co-authored-by: erik pernod <erik.pernod@gmail.com>
Co-authored-by: Olivier Roussel <olivier.roussel@inria.fr>
Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>
bakpaul added a commit to bakpaul/sofa that referenced this pull request Feb 23, 2024
)

* Added projective and lagrangian suffix

* Reported changes to Cuda plugin

* Modify rest of the code to avoid warning from compatibility layer

* Add compatibility layer for deprecated header in CUDA

* add alias for compatibility layer in scene construction

* Report name modification to all scenes

* Revert Compat modification...

* [LinearAlgera, Core] Fix linking with LTO on MacOS/Clang (sofa-framework#4293)

Fix linking with LTO on macos

* [LinearSolver] Remove CSparse-based linear solvers (sofa-framework#4258)

* [LinearSolver.Direct] Remove CSparse based solvers

* Remove csparse extlib

* Fetchable CSparseSolvers plugin

* Remove references of SparseLUSolver

* Remove references to SparseCholeskySolver

* Remove csparse

* Try to fix on Linux

* Update the compat

* [LinearSolver.Direct] Remove CSparse based solvers

* Fix direct solver

* [GUI.Qt] Minor single-line cleaning (sofa-framework#4308)

Co-authored-by: erik pernod <erik.pernod@gmail.com>

* [Sofa.GUI.Qt] Add cmake module for QGLViewer (sofa-framework#4290)

* Add cmake module for QGLViewer

* Support library name for apt packages

* Fix qglviewer cmake finder module to first seach for a config cmake file.

* Update cmake/Modules/FindQGLViewer.cmake

Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>

---------

Co-authored-by: Frederick Roy <fredroy@users.noreply.github.com>
Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>

* [MultiThreading] Avoid Static Initialization Order Fiasco (sofa-framework#4307)

* [Core] Minor clean of DefaultAnimationLoop  (sofa-framework#4314)

* Remove unlogical use of visitor

* Delete unused methods

* [LinearSystem] Speedup computation of Jacobian matrices  (sofa-framework#4317)

* [LinearSystem] Speedup computation of Jacobian matrices in case both mstates are the same

* minor reformat to align calls to computeJacobiansFrom

* [SofaCUDA] FIX compilation SofaCUDA along with SparseGrid with Cuda12 (sofa-framework#4319)

* FIX compilation SofaCUDA along with SparseGrid with Cuda12

* Use a multiplication instead

* [Common] Add message to make the fetch mechanism less hidden (sofa-framework#4310)

* Add message to make it more clear

* slight modifications to be even more clear and add an error the dependency cannot be met

* [Collections] Remove reference to non-existing SofaSimulation (sofa-framework#4320)

remove ref to non-existent sofasimu

Co-authored-by: Paul Baksic <30337881+bakpaul@users.noreply.github.com>

* Remove repeating preffix from projective constraints

* Moved alias to original header

* Changed deprecation date

* add component change entry

* Change name following discussion with Hugo

* Change remaining scene with FixedConstraint

* remove last occurences in py files

* Changed the message display of sceneCheckUsingAlias when aliased component is in component change

* Fix factory

* Add alias creation when object in componentRenamed in factory

* Remove precedently added aliases

---------

Co-authored-by: Frederick Roy <fredroy@users.noreply.github.com>
Co-authored-by: Alex Bilger <alxbilger@users.noreply.github.com>
Co-authored-by: erik pernod <erik.pernod@gmail.com>
Co-authored-by: Olivier Roussel <olivier.roussel@inria.fr>
Co-authored-by: Hugo <hugo.talbot@sofa-framework.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr: fast merge Minor change that can be merged without waiting for the 7 review days pr: fix Fix a bug pr: status ready Approved a pull-request, ready to be squashed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants