nim_duilib/base/synchronization/lock_posix.cpp

46 lines
637 B
C++
Raw Normal View History

2019-04-19 17:19:57 +08:00
// Copyright (c) 2011, NetEase Inc. All rights reserved.
//
// Author: rl
// Date: 2011/6/9
//
// Lock implemetation on posix like Mac OS X/Linux/FreeBSD
#include "lock.h"
#if defined(OS_POSIX)
#include <errno.h>
namespace nbase
{
NLock::NLock()
{
// In release, go with the default lock attributes.
pthread_mutex_init(&os_lock_, NULL);
}
NLock::~NLock()
{
pthread_mutex_destroy(&os_lock_);
}
bool NLock::Try()
{
int rv = pthread_mutex_trylock(&os_lock_);
return rv == 0;
}
void NLock::Lock()
{
pthread_mutex_lock(&os_lock_);
}
void NLock::Unlock()
{
pthread_mutex_unlock(&os_lock_);
}
} // namespace
#endif // OS_WIN