Help - Search - Members - Calendar
Full Version: Bizarre Semaphore Behavior
InsanelyMac Forum > Apple World > Mac Programming and Development
Computer Guru
Hi all,

I have some very basic semaphore code that works great on Linux, but cannot for the life of me get it to run properly on OS X... It returns the oddest of results...

CODE
#include <iostream>
#include <fcntl.h>
#include <stdio.h>
#include <semaphore.h>

int main()
{
    sem_t* test;
    test = sem_open("test", O_CREAT, 0, 1);
    
    int value;
    sem_getvalue(test, &value);
    printf("Semaphore initialized to %d\n", value);
}


Compiling this on OS X with g++ returns the following output:
CODE
iQudsi:Desktop mqudsi$ g++ test.cpp
iQudsi:Desktop mqudsi$ ./a.out
Semaphore initialized to -1881139893


Whereas on Ubuntu, I get the decidedly more-sane result:
CODE
iQudsi: Desktop mqudsi$ g++ test.cpp -lrt
iQudsi:Desktop mqudsi$ ./a.out
Semaphore initialized to 1


I've been at this for 3 hours straight, and cannot figure out why OS X is returning such bizarre results...

I've tried using file paths as the semaphore name, it didn't make a difference.

Any ideas?
realityiswhere
Guess you found your answer wink.gif

http://forums.macosxhints.com/showthread.php?t=101647
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.