Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright notices
[simgrid.git] / src / xbt / xbt_os_thread.c
index 63819fd..d7545b4 100644 (file)
@@ -2,12 +2,21 @@
 /* Used in RL to get win/lin portability, and in SG when CONTEXT_THREAD     */
 /* in SG, when using CONTEXT_UCONTEXT, xbt_os_thread_stub is used instead   */
 
-/* Copyright (c) 2007-2014. The SimGrid Team.
+/* Copyright (c) 2007-2015. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
+#if defined(WIN32)
+#elif defined(__MACH__) && defined(__APPLE__)
+#include <stdint.h>
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#else
+#include <unistd.h>
+#endif
+
 #include "internal_config.h"
 #include "xbt/sysdep.h"
 #include "xbt/ex.h"
@@ -21,8 +30,9 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_sync_os, xbt,
                                 "Synchronization mechanism (OS-level)");
 
 /* ********************************* PTHREAD IMPLEMENTATION ************************************ */
-#ifdef HAVE_PTHREAD_H
+#ifndef _XBT_WIN32
 
+#include <pthread.h>
 #include <limits.h>
 #include <semaphore.h>
 
@@ -570,7 +580,7 @@ xbt_os_sem_t xbt_os_sem_init(unsigned int value)
     res->name[13] = '\0';
     res->ps = sem_open(res->name, O_CREAT, 0644, value);
   }
-  if ((res->ps == (sem_t *) SEM_FAILED))
+  if (res->ps == (sem_t *) SEM_FAILED)
     THROWF(system_error, errno, "sem_open() failed: %s", strerror(errno));
 
   /* Remove the name from the semaphore namespace: we never join on it */
@@ -1249,7 +1259,7 @@ int xbt_os_get_numcores(void) {
     SYSTEM_INFO sysinfo;
     GetSystemInfo(&sysinfo);
     return sysinfo.dwNumberOfProcessors;
-#elif MACOS
+#elif defined(__APPLE__) && defined(__MACH__)
     int nm[2];
     size_t len = 4;
     uint32_t count;