@@ -126,63 +126,72 @@ impl Local for IoFactoryObject {
126
126
127
127
#[ cfg( test) ]
128
128
mod test {
129
+ use unstable:: run_in_bare_thread;
129
130
use rt:: test:: * ;
130
131
use super :: * ;
131
132
use rt:: task:: Task ;
132
133
use rt:: local_ptr;
133
134
134
135
#[ test]
135
136
fn thread_local_task_smoke_test ( ) {
136
- local_ptr:: init_tls_key ( ) ;
137
- let mut sched = ~new_test_uv_sched ( ) ;
138
- let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
139
- Local :: put ( task) ;
140
- let task: ~Task = Local :: take ( ) ;
141
- cleanup_task ( task) ;
137
+ do run_in_bare_thread {
138
+ local_ptr : : init_tls_key ( ) ;
139
+ let mut sched = ~new_test_uv_sched ( ) ;
140
+ let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
141
+ Local :: put ( task) ;
142
+ let task: ~Task = Local :: take ( ) ;
143
+ cleanup_task ( task) ;
144
+ }
142
145
}
143
146
144
147
#[ test]
145
148
fn thread_local_task_two_instances ( ) {
146
- local_ptr:: init_tls_key ( ) ;
147
- let mut sched = ~new_test_uv_sched ( ) ;
148
- let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
149
- Local :: put ( task) ;
150
- let task: ~Task = Local :: take ( ) ;
151
- cleanup_task ( task) ;
152
- let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
153
- Local :: put ( task) ;
154
- let task: ~Task = Local :: take ( ) ;
155
- cleanup_task ( task) ;
149
+ do run_in_bare_thread {
150
+ local_ptr : : init_tls_key ( ) ;
151
+ let mut sched = ~new_test_uv_sched ( ) ;
152
+ let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
153
+ Local :: put ( task) ;
154
+ let task: ~Task = Local :: take ( ) ;
155
+ cleanup_task ( task) ;
156
+ let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
157
+ Local :: put ( task) ;
158
+ let task: ~Task = Local :: take ( ) ;
159
+ cleanup_task ( task) ;
160
+ }
156
161
157
162
}
158
163
159
164
#[ test]
160
165
fn borrow_smoke_test ( ) {
161
- local_ptr:: init_tls_key ( ) ;
162
- let mut sched = ~new_test_uv_sched ( ) ;
163
- let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
164
- Local :: put ( task) ;
165
-
166
- unsafe {
167
- let _task: * mut Task = Local :: unsafe_borrow ( ) ;
166
+ do run_in_bare_thread {
167
+ local_ptr : : init_tls_key ( ) ;
168
+ let mut sched = ~new_test_uv_sched ( ) ;
169
+ let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
170
+ Local :: put ( task) ;
171
+
172
+ unsafe {
173
+ let _task: * mut Task = Local :: unsafe_borrow ( ) ;
174
+ }
175
+ let task: ~Task = Local :: take ( ) ;
176
+ cleanup_task ( task) ;
168
177
}
169
- let task: ~Task = Local :: take ( ) ;
170
- cleanup_task ( task) ;
171
178
}
172
179
173
180
#[ test]
174
181
fn borrow_with_return ( ) {
175
- local_ptr:: init_tls_key ( ) ;
176
- let mut sched = ~new_test_uv_sched ( ) ;
177
- let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
178
- Local :: put ( task) ;
179
-
180
- let res = do Local :: borrow :: < Task , bool > |_task| {
181
- true
182
- } ;
183
- assert ! ( res)
184
- let task: ~Task = Local :: take ( ) ;
185
- cleanup_task ( task) ;
182
+ do run_in_bare_thread {
183
+ local_ptr : : init_tls_key ( ) ;
184
+ let mut sched = ~new_test_uv_sched ( ) ;
185
+ let task = ~Task :: new_root ( & mut sched. stack_pool , || { } ) ;
186
+ Local :: put ( task) ;
187
+
188
+ let res = do Local :: borrow :: < Task , bool > |_task| {
189
+ true
190
+ } ;
191
+ assert ! ( res)
192
+ let task: ~Task = Local :: take ( ) ;
193
+ cleanup_task ( task) ;
194
+ }
186
195
}
187
196
188
197
}
0 commit comments