Skip to content

Commit 74d1e8f

Browse files
authored
Merge pull request #2458 from LinuxCNC/fix-mb2hal-shutdown-segfaults
mb2hal: wait for threads to stop before deallocating the memory they'…
2 parents 9df9b64 + d8e4e90 commit 74d1e8f

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

src/hal/user_comps/mb2hal/mb2hal.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ int main(int argc, char **argv)
9191

9292
/* Each link has it's own thread */
9393
pthread_attr_init(&thrd_attr);
94-
pthread_attr_setdetachstate(&thrd_attr, PTHREAD_CREATE_DETACHED);
9594
for (counter = 0; counter < gbl.tot_mb_links; counter++) {
9695
ret = pthread_create(&gbl.mb_links[counter].thrd, &thrd_attr, link_loop_and_logic, (void *) &gbl.mb_links[counter].mb_link_num);
9796
if (ret != 0) {
@@ -105,6 +104,14 @@ int main(int argc, char **argv)
105104
sleep(1);
106105
}
107106

107+
for (counter = 0; counter < gbl.tot_mb_links; counter++) {
108+
ret = pthread_join(gbl.mb_links[counter].thrd, NULL);
109+
if (ret != 0) {
110+
ERR(gbl.init_dbg, "Unable to join thread for link number %d: %s", counter, strerror(ret));
111+
}
112+
// OK(gbl.init_dbg, "Link thread %d joined OK OK", counter);
113+
}
114+
108115
QUIT_CLEANUP:
109116
quit_cleanup();
110117
OK(gbl.init_dbg, "going to exit!");

0 commit comments

Comments
 (0)