Hey all -

Just a quick heads up about 3 changes I'm planning on committing tonight (unless someone speaks up to the contrary).

First, I noticed that while we support using Solaris threads to launch / cancel / etc. threads, we don't use Solaris mutexes for the back end to our opal_mutex_t. I added the code to do this, and cleaned up the pthreads / spinlock code just a bit to make it slightly easier to maintain.

Second, if the pthreads implementation in use supports error checking mutexes and debugging is enabled, we will use error checking mutexes instead of normal mutexes. Error checking mutexes are generally slower than normal mutexes, but provide the ability to detect a couple of situations we've run into in the past couple months: calling lock from a thread that already has the lock and calling unlock from a thread other than the one that locked the mutex. If either situation is detected, the opal_mutex code will print a warning and call abort(). With change #3, on Linux a stack trace will also be displayed.

Third is moving the stacktrace init code from ompi to opal so that opal and orte processes will also print a stack trace when a process receives one of the registered signals. I also added SIGABRT to the list, as it seemed useful to have a stack trace when we called abort().

Brian


--
  Brian Barrett
  Open MPI developer
  http://www.open-mpi.org/


Reply via email to