Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
0153e64d
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0153e64d
编写于
1月 26, 2016
作者:
D
Dave Huseby
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixes #31229
上级
50df6b9d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
37 addition
and
18 deletion
+37
-18
src/libstd/sys/unix/fs.rs
src/libstd/sys/unix/fs.rs
+1
-1
src/libstd/sys/unix/stack_overflow.rs
src/libstd/sys/unix/stack_overflow.rs
+34
-9
src/libtest/lib.rs
src/libtest/lib.rs
+2
-8
未找到文件。
src/libstd/sys/unix/fs.rs
浏览文件 @
0153e64d
...
...
@@ -224,7 +224,7 @@ fn name_bytes(&self) -> &[u8] {
fn
name_bytes
(
&
self
)
->
&
[
u8
]
{
unsafe
{
::
slice
::
from_raw_parts
(
self
.entry.d_name
.as_ptr
()
as
*
const
u8
,
self
.entry.d_nam
e
len
as
usize
)
self
.entry.d_namlen
as
usize
)
}
}
#[cfg(any(target_os
=
"android"
,
...
...
src/libstd/sys/unix/stack_overflow.rs
浏览文件 @
0153e64d
...
...
@@ -135,17 +135,42 @@ pub unsafe fn cleanup() {
Handler
{
_
data
:
MAIN_ALTSTACK
};
}
pub
unsafe
fn
make_handler
()
->
Handler
{
let
alt_stack
=
mmap
(
ptr
::
null_mut
(),
SIGSTKSZ
,
PROT_READ
|
PROT_WRITE
,
MAP_PRIVATE
|
MAP_ANON
,
-
1
,
0
);
if
alt_stack
==
MAP_FAILED
{
#[cfg(any(target_os
=
"linux"
,
target_os
=
"macos"
,
target_os
=
"bitrig"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
))]
unsafe
fn
get_stack
()
->
*
mut
libc
::
c_void
{
let
stack
=
mmap
(
ptr
::
null_mut
(),
SIGSTKSZ
,
PROT_READ
|
PROT_WRITE
,
MAP_PRIVATE
|
MAP_ANON
,
-
1
,
0
);
if
stack
==
MAP_FAILED
{
panic!
(
"failed to allocate an alternative stack"
);
}
stack
}
#[cfg(any(target_os
=
"dragonfly"
,
target_os
=
"freebsd"
))]
unsafe
fn
get_stack
()
->
*
mut
i8
{
let
stack
=
mmap
(
ptr
::
null_mut
(),
SIGSTKSZ
,
PROT_READ
|
PROT_WRITE
,
MAP_PRIVATE
|
MAP_ANON
,
-
1
,
0
);
if
stack
==
MAP_FAILED
{
panic!
(
"failed to allocate an alternative stack"
);
}
stack
as
*
mut
i8
}
pub
unsafe
fn
make_handler
()
->
Handler
{
let
alt_stack
=
get_stack
();
let
mut
stack
:
libc
::
stack_t
=
mem
::
zeroed
();
stack
.ss_sp
=
alt_stack
;
...
...
@@ -154,7 +179,7 @@ pub unsafe fn make_handler() -> Handler {
sigaltstack
(
&
stack
,
ptr
::
null_mut
());
Handler
{
_
data
:
alt_stack
}
Handler
{
_
data
:
alt_stack
as
*
mut
libc
::
c_void
}
}
pub
unsafe
fn
drop_handler
(
handler
:
&
mut
Handler
)
{
...
...
src/libtest/lib.rs
浏览文件 @
0153e64d
...
...
@@ -939,18 +939,12 @@ fn num_cpus() -> usize {
fn
num_cpus
()
->
usize
{
let
mut
cpus
:
libc
::
c_uint
=
0
;
let
mut
cpus_size
=
std
::
mem
::
size_of_val
(
&
cpus
);
let
mut
mib
=
[
libc
::
CTL_HW
,
libc
::
HW_AVAILCPU
,
0
,
0
];
unsafe
{
libc
::
sysctl
(
mib
.as_mut_ptr
(),
2
,
&
mut
cpus
as
*
mut
_
as
*
mut
_
,
&
mut
cpus_size
as
*
mut
_
as
*
mut
_
,
0
as
*
mut
_
,
0
);
cpus
=
libc
::
sysconf
(
libc
::
_
SC_NPROCESSORS_ONLN
)
as
libc
::
c_uint
;
}
if
cpus
<
1
{
mib
[
1
]
=
libc
::
HW_NCPU
;
let
mut
mib
=
[
libc
::
CTL_HW
,
libc
::
HW_NCPU
,
0
,
0
]
;
unsafe
{
libc
::
sysctl
(
mib
.as_mut_ptr
(),
2
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录