Mac OS X does not implement unnamed semaphores. So use a named one instead.
|
|
|
126 | 126 | #include <sys/time.h> |
127 | 127 | #include <semaphore.h> |
128 | 128 | #include <pthread.h> |
| 129 | #include <errno.h> |
129 | 130 | |
130 | 131 | #include "acpi.h" |
131 | 132 | #include "accommon.h" |
… |
… |
|
537 | 538 | |
538 | 539 | if (sem_init (Sem, 0, InitialUnits) == -1) |
539 | 540 | { |
540 | | AcpiOsFree (Sem); |
541 | | return (AE_BAD_PARAMETER); |
| 541 | if (errno == ENOSYS) { |
| 542 | AcpiOsFree (Sem); |
| 543 | Sem = sem_open(tmpnam(NULL), O_EXCL|O_CREAT, 0755, InitialUnits); |
| 544 | } else { |
| 545 | perror ("AcpiOsCreateSemaphore"); |
| 546 | AcpiOsFree (Sem); |
| 547 | return (AE_BAD_PARAMETER); |
| 548 | } |
542 | 549 | } |
543 | 550 | |
544 | 551 | *OutHandle = (ACPI_HANDLE) Sem; |