Blame view

RIOT/sys/posix/pthread/pthread_once.c 724 Bytes
a752c7ab   elopes   add first test an...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  /*
   * POSIX implementation of threading.
   *
   * Copyright (C) 2013 Freie Universität Berlin
   *
   * This file is subject to the terms and conditions of the GNU Lesser
   * General Public License v2.1. See the file LICENSE in the top level
   * directory for more details.
   */
  
  /**
   * @ingroup pthread
   * @{
   * @file
   * @brief   Singletons features / single-shot execution.
   * @author  Christian Mehlis <mehlis@inf.fu-berlin.de>
   * @author  René Kijewski <kijewski@inf.fu-berlin.de>
   * @}
   */
  
  #include "pthread.h"
  
  int pthread_once(pthread_once_t *once_control, void (*init_routine)(void))
  {
      if (*once_control == PTHREAD_ONCE_INIT) {
          init_routine();
      }
  
      *once_control = PTHREAD_ONCE_INIT + 1;
  
      return 0;
  }