Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
c02f1e08
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
c02f1e08
编写于
8月 26, 2022
作者:
wafwerar
提交者:
GitHub
8月 26, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #16420 from taosdata/fix/ZhiqiangWang/TD-13064-fix-mac-semaphore-error
os: fix Mac Semaphore error
上级
5ce84e43
70ea1235
变更
5
展开全部
隐藏空白更改
内联
并排
Showing
5 changed file
with
627 addition
and
755 deletion
+627
-755
cmake/cmake.define
cmake/cmake.define
+0
-2
cmake/cmake.install
cmake/cmake.install
+16
-0
cmake/cmake.options
cmake/cmake.options
+6
-0
include/os/osSemaphore.h
include/os/osSemaphore.h
+74
-75
source/os/src/osSemaphore.c
source/os/src/osSemaphore.c
+531
-678
未找到文件。
cmake/cmake.define
浏览文件 @
c02f1e08
...
...
@@ -2,8 +2,6 @@ cmake_minimum_required(VERSION 3.0)
set(CMAKE_VERBOSE_MAKEFILE OFF)
SET(BUILD_SHARED_LIBS "OFF")
#set output directory
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build/lib)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build/bin)
...
...
cmake/cmake.install
浏览文件 @
c02f1e08
SET
(
PREPARE_ENV_CMD
"prepare_env_cmd"
)
SET
(
PREPARE_ENV_TARGET
"prepare_env_target"
)
ADD_CUSTOM_COMMAND
(
OUTPUT
$
{
PREPARE_ENV_CMD
}
POST_BUILD
COMMAND
echo
"make test directory"
DEPENDS
taosd
COMMAND
$
{
CMAKE_COMMAND
}
-
E
make_directory
$
{
TD_TESTS_OUTPUT_DIR
}
/
cfg
/
COMMAND
$
{
CMAKE_COMMAND
}
-
E
make_directory
$
{
TD_TESTS_OUTPUT_DIR
}
/
log
/
COMMAND
$
{
CMAKE_COMMAND
}
-
E
make_directory
$
{
TD_TESTS_OUTPUT_DIR
}
/
data
/
COMMAND
$
{
CMAKE_COMMAND
}
-
E
echo
dataDir
$
{
TD_TESTS_OUTPUT_DIR
}
/
data
>
$
{
TD_TESTS_OUTPUT_DIR
}
/
cfg
/
taos
.
cfg
COMMAND
$
{
CMAKE_COMMAND
}
-
E
echo
logDir
$
{
TD_TESTS_OUTPUT_DIR
}
/
log
>>
$
{
TD_TESTS_OUTPUT_DIR
}
/
cfg
/
taos
.
cfg
COMMAND
$
{
CMAKE_COMMAND
}
-
E
echo
charset
UTF
-
8
>>
$
{
TD_TESTS_OUTPUT_DIR
}
/
cfg
/
taos
.
cfg
COMMAND
$
{
CMAKE_COMMAND
}
-
E
echo
monitor
0
>>
$
{
TD_TESTS_OUTPUT_DIR
}
/
cfg
/
taos
.
cfg
COMMENT
"prepare taosd environment"
)
ADD_CUSTOM_TARGET
(
$
{
PREPARE_ENV_TARGET
}
ALL
WORKING_DIRECTORY
$
{
TD_EXECUTABLE_OUTPUT_PATH
}
DEPENDS
$
{
PREPARE_ENV_CMD
})
IF
(
TD_LINUX
)
SET
(
TD_MAKE_INSTALL_SH
"${TD_SOURCE_DIR}/packaging/tools/make_install.sh"
)
INSTALL
(
CODE
"MESSAGE(
\"
make install script: ${TD_MAKE_INSTALL_SH}
\"
)"
)
...
...
cmake/cmake.options
浏览文件 @
c02f1e08
...
...
@@ -90,6 +90,12 @@ ELSE ()
ENDIF ()
ENDIF ()
option(
BUILD_SHARED_LIBS
""
OFF
)
option(
RUST_BINDINGS
"If build with rust-bindings"
...
...
include/os/osSemaphore.h
浏览文件 @
c02f1e08
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _TD_OS_SEMPHONE_H_
#define _TD_OS_SEMPHONE_H_
#ifdef __cplusplus
extern
"C"
{
#endif
#include <semaphore.h>
#if defined(_TD_DARWIN_64)
// typedef struct tsem_s *tsem_t;
typedef
struct
bosal_sem_t
*
tsem_t
;
int
tsem_init
(
tsem_t
*
sem
,
int
pshared
,
unsigned
int
value
);
int
tsem_wait
(
tsem_t
*
sem
);
int
tsem_timewait
(
tsem_t
*
sim
,
int64_t
nanosecs
);
int
tsem_post
(
tsem_t
*
sem
);
int
tsem_destroy
(
tsem_t
*
sem
);
#else
#define tsem_t sem_t
#define tsem_init sem_init
int
tsem_wait
(
tsem_t
*
sem
);
int
tsem_timewait
(
tsem_t
*
sim
,
int64_t
nanosecs
);
#define tsem_post sem_post
#define tsem_destroy sem_destroy
#endif
#if defined(_TD_DARWIN_64)
// #define TdThreadRwlock TdThreadMutex
// #define taosThreadRwlockInit(lock, NULL) taosThreadMutexInit(lock, NULL)
// #define taosThreadRwlockDestroy(lock) taosThreadMutexDestroy(lock)
// #define taosThreadRwlockWrlock(lock) taosThreadMutexLock(lock)
// #define taosThreadRwlockRdlock(lock) taosThreadMutexLock(lock)
// #define taosThreadRwlockUnlock(lock) taosThreadMutexUnlock(lock)
// #define TdThreadSpinlock TdThreadMutex
// #define taosThreadSpinInit(lock, NULL) taosThreadMutexInit(lock, NULL)
// #define taosThreadSpinDestroy(lock) taosThreadMutexDestroy(lock)
// #define taosThreadSpinLock(lock) taosThreadMutexLock(lock)
// #define taosThreadSpinUnlock(lock) taosThreadMutexUnlock(lock)
#endif
bool
taosCheckPthreadValid
(
TdThread
thread
);
int64_t
taosGetSelfPthreadId
();
int64_t
taosGetPthreadId
(
TdThread
thread
);
void
taosResetPthread
(
TdThread
*
thread
);
bool
taosComparePthread
(
TdThread
first
,
TdThread
second
);
int32_t
taosGetPId
();
int32_t
taosGetAppName
(
char
*
name
,
int32_t
*
len
);
#ifdef __cplusplus
}
#endif
#endif
/*_TD_OS_SEMPHONE_H_*/
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _TD_OS_SEMPHONE_H_
#define _TD_OS_SEMPHONE_H_
#ifdef __cplusplus
extern
"C"
{
#endif
#include <semaphore.h>
#if defined(_TD_DARWIN_64)
#include <dispatch/dispatch.h>
// typedef struct tsem_s *tsem_t;
typedef
dispatch_semaphore_t
tsem_t
;
int
tsem_init
(
tsem_t
*
sem
,
int
pshared
,
unsigned
int
value
);
int
tsem_wait
(
tsem_t
*
sem
);
int
tsem_timewait
(
tsem_t
*
sim
,
int64_t
nanosecs
);
int
tsem_post
(
tsem_t
*
sem
);
int
tsem_destroy
(
tsem_t
*
sem
);
#else
#define tsem_t sem_t
#define tsem_init sem_init
int
tsem_wait
(
tsem_t
*
sem
);
int
tsem_timewait
(
tsem_t
*
sim
,
int64_t
nanosecs
);
#define tsem_post sem_post
#define tsem_destroy sem_destroy
#endif
#if defined(_TD_DARWIN_64)
// #define TdThreadRwlock TdThreadMutex
// #define taosThreadRwlockInit(lock, NULL) taosThreadMutexInit(lock, NULL)
// #define taosThreadRwlockDestroy(lock) taosThreadMutexDestroy(lock)
// #define taosThreadRwlockWrlock(lock) taosThreadMutexLock(lock)
// #define taosThreadRwlockRdlock(lock) taosThreadMutexLock(lock)
// #define taosThreadRwlockUnlock(lock) taosThreadMutexUnlock(lock)
// #define TdThreadSpinlock TdThreadMutex
// #define taosThreadSpinInit(lock, NULL) taosThreadMutexInit(lock, NULL)
// #define taosThreadSpinDestroy(lock) taosThreadMutexDestroy(lock)
// #define taosThreadSpinLock(lock) taosThreadMutexLock(lock)
// #define taosThreadSpinUnlock(lock) taosThreadMutexUnlock(lock)
#endif
bool
taosCheckPthreadValid
(
TdThread
thread
);
int64_t
taosGetSelfPthreadId
();
int64_t
taosGetPthreadId
(
TdThread
thread
);
void
taosResetPthread
(
TdThread
*
thread
);
bool
taosComparePthread
(
TdThread
first
,
TdThread
second
);
int32_t
taosGetPId
();
int32_t
taosGetAppName
(
char
*
name
,
int32_t
*
len
);
#ifdef __cplusplus
}
#endif
#endif
/*_TD_OS_SEMPHONE_H_*/
source/os/src/osSemaphore.c
浏览文件 @
c02f1e08
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录