Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
1303687d
R
Rust
项目概览
int
/
Rust
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
1303687d
编写于
10月 18, 2015
作者:
A
arcnmx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Clean up thread::spawn
上级
d3f49786
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
23 deletion
+16
-23
src/libstd/thread/mod.rs
src/libstd/thread/mod.rs
+16
-23
未找到文件。
src/libstd/thread/mod.rs
浏览文件 @
1303687d
...
@@ -162,7 +162,6 @@
...
@@ -162,7 +162,6 @@
use
prelude
::
v1
::
*
;
use
prelude
::
v1
::
*
;
use
alloc
::
boxed
::
FnBox
;
use
any
::
Any
;
use
any
::
Any
;
use
cell
::
UnsafeCell
;
use
cell
::
UnsafeCell
;
use
fmt
;
use
fmt
;
...
@@ -249,16 +248,6 @@ pub fn stack_size(mut self, size: usize) -> Builder {
...
@@ -249,16 +248,6 @@ pub fn stack_size(mut self, size: usize) -> Builder {
pub
fn
spawn
<
F
,
T
>
(
self
,
f
:
F
)
->
io
::
Result
<
JoinHandle
<
T
>>
where
pub
fn
spawn
<
F
,
T
>
(
self
,
f
:
F
)
->
io
::
Result
<
JoinHandle
<
T
>>
where
F
:
FnOnce
()
->
T
,
F
:
Send
+
'static
,
T
:
Send
+
'static
F
:
FnOnce
()
->
T
,
F
:
Send
+
'static
,
T
:
Send
+
'static
{
{
unsafe
{
self
.spawn_inner
(
Box
::
new
(
f
))
.map
(
JoinHandle
)
}
}
// NB: this function is unsafe as the lifetime parameter of the code to run
// in the new thread is not tied into the return value, and the return
// value must not outlast that lifetime.
unsafe
fn
spawn_inner
<
'a
,
T
:
Send
>
(
self
,
f
:
Box
<
FnBox
()
->
T
+
Send
+
'a
>
)
->
io
::
Result
<
JoinInner
<
T
>>
{
let
Builder
{
name
,
stack_size
}
=
self
;
let
Builder
{
name
,
stack_size
}
=
self
;
let
stack_size
=
stack_size
.unwrap_or
(
util
::
min_stack
());
let
stack_size
=
stack_size
.unwrap_or
(
util
::
min_stack
());
...
@@ -274,22 +263,26 @@ unsafe fn spawn_inner<'a, T: Send>(self, f: Box<FnBox() -> T + Send + 'a>)
...
@@ -274,22 +263,26 @@ unsafe fn spawn_inner<'a, T: Send>(self, f: Box<FnBox() -> T + Send + 'a>)
if
let
Some
(
name
)
=
their_thread
.name
()
{
if
let
Some
(
name
)
=
their_thread
.name
()
{
imp
::
Thread
::
set_name
(
name
);
imp
::
Thread
::
set_name
(
name
);
}
}
thread_info
::
set
(
imp
::
guard
::
current
(),
their_thread
);
unsafe
{
let
mut
output
=
None
;
thread_info
::
set
(
imp
::
guard
::
current
(),
their_thread
);
let
try_result
=
{
let
mut
output
=
None
;
let
ptr
=
&
mut
output
;
let
try_result
=
{
unwind
::
try
(
move
||
*
ptr
=
Some
(
f
()))
let
ptr
=
&
mut
output
;
};
unwind
::
try
(
move
||
*
ptr
=
Some
(
f
()))
*
their_packet
.get
()
=
Some
(
try_result
.map
(|()|
{
};
output
.unwrap
()
*
their_packet
.get
()
=
Some
(
try_result
.map
(|()|
{
}));
output
.unwrap
()
}));
}
};
};
Ok
(
JoinInner
{
Ok
(
JoinHandle
(
JoinInner
{
native
:
Some
(
try!
(
imp
::
Thread
::
new
(
stack_size
,
Box
::
new
(
main
)))),
native
:
unsafe
{
Some
(
try!
(
imp
::
Thread
::
new
(
stack_size
,
Box
::
new
(
main
))))
},
thread
:
my_thread
,
thread
:
my_thread
,
packet
:
Packet
(
my_packet
),
packet
:
Packet
(
my_packet
),
})
})
)
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录