[haiku-commits] haiku: hrev56212 - src/libs/compat/freebsd_network

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 22 Jun 2022 04:35:29 +0000 (UTC)

hrev56212 adds 1 changeset to branch 'master'
old head: 7e1c1d30203733161a787736c569b1fb1b5bd1b6
new head: a928b16e36678dc22bdb753b4663a5882435a1ad
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=a928b16e3667+%5E7e1c1d302037

----------------------------------------------------------------------------

a928b16e3667: freebsd_network: Unlock the taskqueue before waiting for threads.
  
  Also set tq_threads to NULL to prevent double-frees.

                              [ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev56212
Commit:      a928b16e36678dc22bdb753b4663a5882435a1ad
URL:         https://git.haiku-os.org/haiku/commit/?id=a928b16e3667
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Wed Jun 22 04:34:37 2022 UTC

----------------------------------------------------------------------------

1 file changed, 6 insertions(+)
src/libs/compat/freebsd_network/taskqueue.c | 6 ++++++

----------------------------------------------------------------------------

diff --git a/src/libs/compat/freebsd_network/taskqueue.c 
b/src/libs/compat/freebsd_network/taskqueue.c
index 50163c576f..85582582fc 100644
--- a/src/libs/compat/freebsd_network/taskqueue.c
+++ b/src/libs/compat/freebsd_network/taskqueue.c
@@ -111,7 +111,10 @@ taskqueue_terminate(struct thread **pp, struct taskqueue 
*tq)
        if (tq->tq_sem == -1)
                return;
 
+       TQ_UNLOCK(tq);
+
        delete_sem(tq->tq_sem);
+       tq->tq_sem = -1;
 
        for (int i = 0; i < tq->tq_threadcount; i++) {
                status_t status;
@@ -120,6 +123,9 @@ taskqueue_terminate(struct thread **pp, struct taskqueue 
*tq)
 
        if (tq->tq_threadcount > 1)
                free(tq->tq_threads);
+       tq->tq_threads = NULL;
+
+       TQ_LOCK(tq);
 }
 
 


Other related posts:

  • » [haiku-commits] haiku: hrev56212 - src/libs/compat/freebsd_network - waddlesplash