Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
VisualDL
提交
7c5bc863
V
VisualDL
项目概览
PaddlePaddle
/
VisualDL
接近 2 年 前同步成功
通知
89
Star
4655
Fork
642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
5
Wiki
分析
仓库
DevOps
项目成员
Pages
V
VisualDL
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
5
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
7c5bc863
编写于
11月 28, 2017
作者:
S
superjom
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add concurrency
上级
3a4fcf90
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
28 addition
and
16 deletion
+28
-16
CMakeLists.txt
CMakeLists.txt
+4
-8
visualdl/backend/utils/concurrency.h
visualdl/backend/utils/concurrency.h
+7
-7
visualdl/backend/utils/test_concurrency.cc
visualdl/backend/utils/test_concurrency.cc
+17
-1
未找到文件。
CMakeLists.txt
浏览文件 @
7c5bc863
...
...
@@ -25,13 +25,6 @@ include_directories(${PROJECT_SOURCE_DIR})
include_directories
(
${
CMAKE_CURRENT_BINARY_DIR
}
)
include_directories
(
${
PROJECT_SOURCE_DIR
}
/thirdparty/local/include
)
pybind11_add_module
(
core
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/logic/pybind.cc
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/utils/filesystem.h
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/utils/concurrency.h
)
target_link_libraries
(
core PRIVATE pybind11::module im storage sdk protobuf glog
)
set_target_properties
(
core PROPERTIES POSITION_INDEPENDENT_CODE TRUE
)
add_subdirectory
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/visualdl/backend/storage
)
add_subdirectory
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/visualdl/backend/logic
)
...
...
@@ -39,5 +32,8 @@ add_executable(vl_test
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/test.cc
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/storage/storage_test.cc
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/utils/test_concurrency.cc
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/logic/im_test.cc
)
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/logic/im_test.cc
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/utils/concurrency.h
${
PROJECT_SOURCE_DIR
}
/visualdl/backend/utils/filesystem.h
)
target_link_libraries
(
vl_test storage im gtest glog protobuf gflags pthread
)
visualdl/backend/utils/concurrency.h
浏览文件 @
7c5bc863
#ifndef VISUALDL_BACKEND_UTILS_CONCURRENCY_H
#define VISUALDL_BACKEND_UTILS_CONCURRENCY_H
#include <glog/logging.h>
#include <chrono>
#include <memory>
#include <thread>
...
...
@@ -14,10 +15,9 @@ namespace cc {
* Each evoke will start a thread to do this asynchronously.
*/
struct
PeriodExector
{
using
task_t
=
std
::
function
<
void
()
>
;
using
duration_t
=
std
::
chrono
::
milliseconds
;
using
task_t
=
std
::
function
<
bool
()
>
;
PeriodExector
&
Global
()
{
static
PeriodExector
&
Global
()
{
static
PeriodExector
exec
;
return
exec
;
}
...
...
@@ -27,11 +27,11 @@ struct PeriodExector {
quit
=
true
;
}
void
operator
()(
task_t
&&
task
,
duration_t
duration
)
{
auto
task_wrapper
=
[
&
,
task
]
{
void
operator
()(
task_t
&&
task
,
int
msec
)
{
auto
task_wrapper
=
[
=
]
{
while
(
!
quit
)
{
task
()
;
std
::
this_thread
::
sleep_for
(
duration
);
if
(
!
task
())
break
;
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
msec
)
);
}
};
threads_
.
emplace_back
(
std
::
thread
(
std
::
move
(
task_wrapper
)));
...
...
visualdl/backend/utils/test_concurrency.cc
浏览文件 @
7c5bc863
#include "visualdl/backend/utils/concurrency.h"
#include <glog/logging.h>
#include <gtest/gtest.h>
namespace
visualdl
{}
// namespace visualdl
\ No newline at end of file
namespace
visualdl
{
int
counter
=
0
;
TEST
(
concurrency
,
test
)
{
cc
::
PeriodExector
::
task_t
task
=
[
&
counter
]()
{
LOG
(
INFO
)
<<
"Hello "
<<
counter
++
;
if
(
counter
>
5
)
return
false
;
return
true
;
};
cc
::
PeriodExector
::
Global
()(
std
::
move
(
task
),
200
);
}
}
// namespace visualdl
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录