From: Martin Quinson Date: Fri, 4 Jan 2019 23:09:51 +0000 (+0100) Subject: Fix make distcheck X-Git-Tag: v3_22~690 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ef40de9569d6b74e953808d9f9eb3095aa7c38ab Fix make distcheck --- diff --git a/src/xbt/OsSemaphore.hpp b/src/xbt/OsSemaphore.hpp new file mode 100644 index 0000000000..64598509d8 --- /dev/null +++ b/src/xbt/OsSemaphore.hpp @@ -0,0 +1,35 @@ +/* Copyright (c) 2019. 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. */ + +#include +#include + +namespace simgrid { +namespace xbt { +class XBT_PUBLIC OsSemaphore { +public: + inline OsSemaphore(unsigned int uiCount) : capa_(uiCount) {} + + inline void acquire() + { + std::unique_lock lock(mutex_); + condition_.wait(lock, [&]() -> bool { return capa_ > 0; }); + --capa_; + } + + inline void release() + { + std::unique_lock lock(mutex_); + ++capa_; + condition_.notify_one(); + } + +private: + unsigned int capa_; + std::mutex mutex_; + std::condition_variable condition_; +}; +} // namespace xbt +} // namespace simgrid diff --git a/tools/cmake/test_prog/prog_sem_init.c b/tools/cmake/test_prog/prog_sem_init.c deleted file mode 100644 index e0a53f59ce..0000000000 --- a/tools/cmake/test_prog/prog_sem_init.c +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (c) 2010-2018. 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. */ - -#include -#include -#include -#include - -int main(void) -{ - sem_t s; - if (sem_init(&s, 0, 0) != 0) - return 1; - return 0; -} diff --git a/tools/cmake/test_prog/prog_sem_open.c b/tools/cmake/test_prog/prog_sem_open.c deleted file mode 100644 index 59ad72bad1..0000000000 --- a/tools/cmake/test_prog/prog_sem_open.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2010-2018. 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. */ - -#include -#include -#include -#include -#include - -#ifndef SEM_FAILED -#define SEM_FAILED (-1) -#endif - -int main(void) { -#ifdef WIN32 - int s; -#else - sem_t * s; -#endif - s = sem_open("/0", O_CREAT, 0644, 10); - if (s == SEM_FAILED){ -// printf("sem_open failed\n"); - return 1; - } -// printf("sem_open succeeded\n"); - return 0; -}