gnuastro-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnuastro-devel] [bug #49049] pthread_barrier_t not immediately reusable


From: Mohammad Akhlaghi
Subject: [gnuastro-devel] [bug #49049] pthread_barrier_t not immediately reusable after destroy
Date: Sat, 10 Sep 2016 10:07:51 +0000 (UTC)
User-agent: Mozilla/5.0 (Linux; Android 4.3; SC-03E Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36

URL:
  <http://savannah.gnu.org/bugs/?49049>

                 Summary: pthread_barrier_t not immediately reusable after
destroy
                 Project: GNU Astronomy Utilities
            Submitted by: makhlaghi
            Submitted on: Sat 10 Sep 2016 07:07:48 PM JST
                Category: All Gnuastro
                Severity: 4 - Important
              Item Group: Crash
                  Status: In Progress
                 Privacy: Public
             Assigned to: makhlaghi
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

Most OSs have the `pthread_barrier' class of functions. But on those that
don't have this optional Pthreads class, we have included our own
implementation in `libs/threads.c'. 

Our implementation can still need the `pthread_barrier' structure after
`pthread_barrier_destroy' is called: the `pthread_cond_wait' loop in the
`pthread_barrier_wait' can finish after `pthread_barrier_destroy'.

So when the next function needs to run on threads and re-initializes the
structure, there will be conflicts whuch will cause hangs and crashes.

I am most greatful to Alan Lefor who patiently tested Gnuastro on his system
many times until we were able to find the cause of the crash.




    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?49049>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]