File tree Expand file tree Collapse file tree 3 files changed +44
-6
lines changed Expand file tree Collapse file tree 3 files changed +44
-6
lines changed Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
13
13
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
14
14
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
15
15
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
16
- refs/heads/auto: bf6964ecb67f4ffce6be75130ab7a3be793960ff
16
+ refs/heads/auto: bfba120133e10df7c1333b98a166d24490270032
17
17
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
18
18
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
19
19
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336
Original file line number Diff line number Diff line change @@ -107,20 +107,22 @@ pub fn log(_level: u32, args: &fmt::Arguments) {
107
107
let optional_task: Option < * mut Task > = Local :: try_unsafe_borrow ( ) ;
108
108
match optional_task {
109
109
Some ( local) => {
110
+ // Lazily initialize the local task's logger
110
111
match ( * local) . logger {
111
112
// Use the available logger if we have one
112
- Some ( ref mut logger) => return logger. log ( args) ,
113
+ Some ( ref mut logger) => { logger. log ( args) ; }
113
114
None => {
114
115
let mut logger = StdErrLogger :: new ( ) ;
115
116
logger. log ( args) ;
116
117
( * local) . logger = Some ( logger) ;
117
118
}
118
119
}
119
120
}
120
- None => { }
121
+ // If there's no local task, then always log to stderr
122
+ None => {
123
+ let mut logger = StdErrLogger :: new ( ) ;
124
+ logger. log ( args) ;
125
+ }
121
126
}
122
- // There is no logger anywhere, just write to stderr
123
- let mut logger = StdErrLogger :: new ( ) ;
124
- logger. log ( args) ;
125
127
}
126
128
}
Original file line number Diff line number Diff line change
1
+ // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ // xfail-fast
12
+ // exec-env:RUST_LOG=debug
13
+
14
+ #[ feature( managed_boxes) ] ;
15
+
16
+ use std:: fmt;
17
+
18
+ struct Foo ( @mut int ) ;
19
+
20
+ impl fmt:: Default for Foo {
21
+ fn fmt ( f : & Foo , _fmt : & mut fmt:: Formatter ) {
22
+ assert ! ( * * * f == 0 ) ;
23
+ * * * f = 1 ;
24
+ }
25
+ }
26
+
27
+ pub fn main ( ) {
28
+ let ( p, c) = stream ( ) ;
29
+ do spawn {
30
+ let f = Foo ( @mut 0 ) ;
31
+ debug ! ( "{}" , f) ;
32
+ assert ! ( * * f == 1 ) ;
33
+ c. send ( ( ) ) ;
34
+ }
35
+ p. recv ( ) ;
36
+ }
You can’t perform that action at this time.
0 commit comments