• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #include "critical_section_posix.h"
12 
13 namespace webrtc {
CriticalSectionPosix()14 CriticalSectionPosix::CriticalSectionPosix()
15 {
16     pthread_mutexattr_t attr;
17     pthread_mutexattr_init(&attr);
18     pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
19     pthread_mutex_init(&_mutex, &attr);
20 }
21 
~CriticalSectionPosix()22 CriticalSectionPosix::~CriticalSectionPosix()
23 {
24     pthread_mutex_destroy(&_mutex);
25 }
26 
27 void
Enter()28 CriticalSectionPosix::Enter()
29 {
30     pthread_mutex_lock(&_mutex);
31 }
32 
33 void
Leave()34 CriticalSectionPosix::Leave()
35 {
36     pthread_mutex_unlock(&_mutex);
37 }
38 } // namespace webrtc
39