Repository navigation
Commit 5f6b5b7
Use std::threads instead of TBB tasks in the o2-sim hit merger
This fixes a crash of the o2-sim hit merger at the end of a run.
- The concurrent flush of kinematics and detector files used a tbb::task_group and tbb::parallel_for_each.
- It runs on a merger IO thread that is created anew for every merge batch.
- When such a thread exits, TBB releases its thread pool and can segfault in pthread_detach.
- The flush now uses std::threads that are joined before the function returns.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>1 parent 140d0e9 commit 5f6b5b7
1 file changed
Lines changed: 15 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
88 | | - | |
| 87 | + | |
89 | 88 | | |
90 | 89 | | |
91 | 90 | | |
| |||
767 | 766 | | |
768 | 767 | | |
769 | 768 | | |
770 | | - | |
771 | | - | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
772 | 772 | | |
773 | 773 | | |
774 | 774 | | |
| |||
796 | 796 | | |
797 | 797 | | |
798 | 798 | | |
799 | | - | |
| 799 | + | |
800 | 800 | | |
801 | 801 | | |
802 | 802 | | |
803 | 803 | | |
804 | 804 | | |
805 | | - | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
806 | 808 | | |
807 | 809 | | |
808 | 810 | | |
| |||
815 | 817 | | |
816 | 818 | | |
817 | 819 | | |
818 | | - | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
819 | 827 | | |
820 | 828 | | |
821 | 829 | | |
| |||
0 commit comments