Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
b534bcf7
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
大约 1 年 前同步成功
通知
282
Star
12117
Fork
2091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
200
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleHub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
200
Issue
200
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b534bcf7
编写于
9月 23, 2019
作者:
S
shenyuhan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix block when add multi lock byself
上级
2c46bb2a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
2 deletion
+28
-2
paddlehub/commands/hub.py
paddlehub/commands/hub.py
+6
-0
paddlehub/common/lock.py
paddlehub/common/lock.py
+22
-2
未找到文件。
paddlehub/commands/hub.py
浏览文件 @
b534bcf7
...
...
@@ -19,6 +19,7 @@ from __future__ import print_function
import
six
import
sys
import
os
from
paddlehub.common.logger
import
logger
from
paddlehub.common.utils
import
sys_stdin_encoding
...
...
@@ -29,6 +30,8 @@ from paddlehub.commands import help
from
paddlehub.commands
import
version
from
paddlehub.commands
import
run
from
paddlehub.commands
import
download
from
paddlehub.common.lock
import
lock
from
paddlehub.common.dir
import
CONF_HOME
class
HubCommand
(
BaseCommand
):
...
...
@@ -66,7 +69,10 @@ def main():
argv
.
append
(
item
.
decode
(
sys_stdin_encoding
()).
decode
(
"utf8"
))
else
:
argv
.
append
(
item
)
fp_lock
=
open
(
os
.
path
.
join
(
CONF_HOME
,
'config.json'
))
lock
.
flock
(
fp_lock
,
lock
.
LOCK_EX
)
command
.
execute
(
argv
[
1
:])
lock
.
flock
(
fp_lock
,
lock
.
LOCK_UN
)
if
__name__
==
"__main__"
:
...
...
paddlehub/common/lock.py
浏览文件 @
b534bcf7
...
...
@@ -13,14 +13,34 @@ class WinLock(object):
class
Lock
(
object
):
_owner
=
None
def
__init__
(
self
):
self
.
LOCK_EX
=
fcntl
.
LOCK_EX
self
.
LOCK_UN
=
fcntl
.
LOCK_UN
self
.
LOCK_TE
=
""
if
os
.
name
==
"posix"
:
self
.
lock
=
fcntl
else
:
self
.
lock
=
WinLock
()
_lock
=
self
.
lock
def
get_lock
(
self
):
return
self
.
lock
lock
=
Lock
().
get_lock
()
def
flock
(
self
,
fp
,
cmd
):
if
cmd
==
fcntl
.
LOCK_UN
:
Lock
.
_owner
=
None
self
.
lock
.
flock
(
fp
,
cmd
)
elif
cmd
==
fcntl
.
LOCK_EX
:
if
Lock
.
_owner
is
None
:
Lock
.
_owner
=
os
.
getpid
()
self
.
lock
.
flock
(
fp
,
cmd
)
else
:
if
Lock
.
_owner
==
os
.
getpid
():
pass
else
:
self
.
lock
.
flock
(
fp
,
cmd
)
lock
=
Lock
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录