1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhu-hong202257887-DNS-Server

Клонировать/Скачать
Lock.cpp 1001 Байт
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
@zhu-hong202257887 Отправлено 29.06.2022 13:31 0d75f45
#include "Lock.h"
Lock::Lock() {
int result = pthread_mutex_init(&m_mutex, NULL);
if (result != 0 ) {
throw std::exception();
}
}
Lock::~Lock(){
pthread_mutex_destroy(&m_mutex);
}
bool Lock::lock() {
return pthread_mutex_lock(&m_mutex) == 0;
}
bool Lock::unlock() {
return pthread_mutex_unlock(&m_mutex) ==0;
}
pthread_mutex_t * Lock::get_mutex() {
return &m_mutex;
}
Sem::Sem() {
int result = sem_init(&m_sem, 0, 0);
if (result != 0) {
throw std::exception();
}
}
Sem::Sem(int number) {
int result = sem_init(&m_sem, 0, number);
if (result != 0) {
throw std::exception();
}
}
Sem::~Sem() {
sem_destroy(&m_sem);
}
//信号量加1
bool Sem::wait() {
return sem_wait(&m_sem) == 0;
}
//信号量减1
bool Sem::post() {
return sem_post(&m_sem) == 0;
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zhu-hong202257887-DNS-Server.git
git@api.gitlife.ru:oschina-mirror/zhu-hong202257887-DNS-Server.git
oschina-mirror
zhu-hong202257887-DNS-Server
zhu-hong202257887-DNS-Server
master