[Insight-developers] Mac Semaphores (Was: Failing tests and compile errors after your check in)

Bradley Lowekamp blowekamp at mail.nih.gov
Fri Feb 18 13:36:44 EST 2011


Hello Dan,

I began looking to this issue as well. You as you indicated there are no pthread semaphores, only POSIX semaphores. So the file should be renamed. Additionally, you removed a lot of platform specific code for these threading related code, the more I am looking at it the more uncomfortable I am becoming because of how little tested these classes are.

Additionally, these POSIX semaphores appear to be designed for interprocess communication and not inter-thread. So this is less then ideal.

We are only using the semaphore class in ParallelSparseFieldLevelSetImageFilter and the window implementation for the conditionally variable. I am going to look if there is an  easy alternative to these uses. If there is a better approach, I am going to propose that this class be deprecated and moved to a depricated module in it's original form.

Brad

On Feb 18, 2011, at 12:59 PM, Daniel Blezek wrote:

> POSIX semaphores are not fully supported on the Mac.  I don't know why this
> works in the 64-bit version...
> 
> We are using sem_destroy to destroy our semaphores.  On the 32-bit Mac, I
> get this return value (perror()):
> 
> 536: sem_destroy: Function not implemented
> 
> Why this linked and run, I'll never know...  Looks like I need to add some
> APPLE specific code.  I suspect this will fix the problem on the Sun.
> 
> We also have a race-condition in our Semaphore code.  On the Mac, the
> semaphores need unique names.  We generate this using the time() function,
> but it has a one second resolution.  Thus if two semaphores are created
> within 1 second, they will collide.  Not very nice.
> 
> I'll try to track this down once again.
> -dan
> 
> 
> On 2/17/11 11:07 AM, "Bill Lorensen" <bill.lorensen at gmail.com> wrote:
> 
>> Dan,
>> 
>> I assume you noticed the failing tests and build errors after your
>> check in yesterday?
>> 
>> Bill
> 
> -- 
> Daniel Blezek, PhD
> Medical Imaging Informatics Innovation Center
> 
> P 127 or (77) 8 8886
> T 507 538 8886
> E blezek.daniel at mayo.edu
> 
> Mayo Clinic
> 200 First St. S.W.
> Harwick SL-44
> Rochester, MN 55905
> mayoclinic.org
> "It is more complicated than you think." -- RFC 1925
> 

========================================================
Bradley Lowekamp  
Lockheed Martin Contractor for
Office of High Performance Computing and Communications
National Library of Medicine 
blowekamp at mail.nih.gov


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20110218/3c852012/attachment.htm>


More information about the Insight-developers mailing list