Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
accel-ppp
提交
1ade87d0
A
accel-ppp
项目概览
Achou.Wang
/
accel-ppp
通知
6
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
accel-ppp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1ade87d0
编写于
12月 27, 2011
作者:
K
Kozlov Dmitry
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
core: queue zero-priority context if number of threads is reached maximum
上级
b2f9d706
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
5 deletion
+10
-5
accel-pppd/radius/req.c
accel-pppd/radius/req.c
+1
-0
accel-pppd/triton/triton.c
accel-pppd/triton/triton.c
+9
-5
未找到文件。
accel-pppd/radius/req.c
浏览文件 @
1ade87d0
...
@@ -278,6 +278,7 @@ int rad_req_wait(struct rad_req_t *req, int timeout)
...
@@ -278,6 +278,7 @@ int rad_req_wait(struct rad_req_t *req, int timeout)
req
->
timeout
.
expire
=
rad_req_timeout
;
req
->
timeout
.
expire
=
rad_req_timeout
;
triton_context_register
(
&
req
->
ctx
,
req
->
rpd
->
ppp
);
triton_context_register
(
&
req
->
ctx
,
req
->
rpd
->
ppp
);
triton_context_set_priority
(
&
req
->
ctx
,
1
);
triton_md_register_handler
(
&
req
->
ctx
,
&
req
->
hnd
);
triton_md_register_handler
(
&
req
->
ctx
,
&
req
->
hnd
);
triton_md_enable_handler
(
&
req
->
hnd
,
MD_MODE_READ
);
triton_md_enable_handler
(
&
req
->
hnd
,
MD_MODE_READ
);
...
...
accel-pppd/triton/triton.c
浏览文件 @
1ade87d0
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
#endif
#endif
int
thread_count
=
2
;
int
thread_count
=
2
;
int
thread_count_max
=
200
;
int
max_events
=
64
;
int
max_events
=
64
;
static
spinlock_t
threads_lock
=
SPINLOCK_INITIALIZER
;
static
spinlock_t
threads_lock
=
SPINLOCK_INITIALIZER
;
...
@@ -255,10 +256,8 @@ struct _triton_thread_t *create_thread()
...
@@ -255,10 +256,8 @@ struct _triton_thread_t *create_thread()
pthread_mutex_init
(
&
thread
->
sleep_lock
,
NULL
);
pthread_mutex_init
(
&
thread
->
sleep_lock
,
NULL
);
pthread_cond_init
(
&
thread
->
sleep_cond
,
NULL
);
pthread_cond_init
(
&
thread
->
sleep_cond
,
NULL
);
pthread_mutex_lock
(
&
thread
->
sleep_lock
);
pthread_mutex_lock
(
&
thread
->
sleep_lock
);
if
(
pthread_create
(
&
thread
->
thread
,
&
attr
,
(
void
*
(
*
)(
void
*
))
triton_thread
,
thread
))
{
while
(
pthread_create
(
&
thread
->
thread
,
&
attr
,
(
void
*
(
*
)(
void
*
))
triton_thread
,
thread
))
triton_log_error
(
"pthread_create: %s"
,
strerror
(
errno
));
sleep
(
1
);
return
NULL
;
}
__sync_add_and_fetch
(
&
triton_stat
.
thread_count
,
1
);
__sync_add_and_fetch
(
&
triton_stat
.
thread_count
,
1
);
__sync_add_and_fetch
(
&
triton_stat
.
thread_active
,
1
);
__sync_add_and_fetch
(
&
triton_stat
.
thread_active
,
1
);
...
@@ -273,7 +272,8 @@ int triton_queue_ctx(struct _triton_context_t *ctx)
...
@@ -273,7 +272,8 @@ int triton_queue_ctx(struct _triton_context_t *ctx)
return
0
;
return
0
;
spin_lock
(
&
threads_lock
);
spin_lock
(
&
threads_lock
);
if
(
list_empty
(
&
sleep_threads
)
||
need_config_reload
||
triton_stat
.
thread_active
>
thread_count
)
{
if
(
list_empty
(
&
sleep_threads
)
||
need_config_reload
||
triton_stat
.
thread_active
>
thread_count
||
(
ctx
->
priority
==
0
&&
triton_stat
.
thread_count
>
thread_count_max
))
{
if
(
ctx
->
priority
)
if
(
ctx
->
priority
)
list_add
(
&
ctx
->
entry2
,
&
ctx_queue
);
list_add
(
&
ctx
->
entry2
,
&
ctx_queue
);
else
else
...
@@ -614,6 +614,10 @@ void __export triton_run()
...
@@ -614,6 +614,10 @@ void __export triton_run()
if
(
opt
&&
atoi
(
opt
)
>
0
)
if
(
opt
&&
atoi
(
opt
)
>
0
)
thread_count
=
atoi
(
opt
);
thread_count
=
atoi
(
opt
);
opt
=
conf_get_opt
(
"core"
,
"thread-count-max"
);
if
(
opt
&&
atoi
(
opt
)
>
0
)
thread_count_max
=
atoi
(
opt
);
for
(
i
=
0
;
i
<
thread_count
;
i
++
)
{
for
(
i
=
0
;
i
<
thread_count
;
i
++
)
{
t
=
create_thread
();
t
=
create_thread
();
if
(
!
t
)
if
(
!
t
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录