@@ -60,12 +60,12 @@ the loop's msg port
60
60
* before_tear_down - called just before the loop invokes `uv_close()` on the
61
61
provided `async_handle`. `uv_run` should return shortly after
62
62
" ]
63
- unsafe fn run_high_level_loop ( loop_ptr : * c_void ,
64
- msg_po : port < high_level_msg > ,
63
+ unsafe fn run_high_level_loop ( msg_po : port < high_level_msg > ,
65
64
before_run : fn ~( * ll:: uv_async_t ) ,
66
65
before_msg_process :
67
66
fn ~( * ll:: uv_async_t , bool ) -> bool ,
68
67
before_tear_down : fn ~( * ll:: uv_async_t ) ) {
68
+ let loop_ptr = ll:: loop_new ( ) ;
69
69
// set up the special async handle we'll use to allow multi-task
70
70
// communication with this loop
71
71
let async = ll:: async_t ( ) ;
@@ -90,6 +90,7 @@ unsafe fn run_high_level_loop(loop_ptr: *c_void,
90
90
// enter the loop... this blocks until the loop is done..
91
91
ll:: run ( loop_ptr) ;
92
92
log ( debug, "high-level loop ended" ) ;
93
+ ll:: loop_delete ( loop_ptr) ;
93
94
}
94
95
95
96
#[ doc = "
@@ -233,11 +234,9 @@ mod test {
233
234
let hl_loop_port = comm:: port :: < high_level_loop > ( ) ;
234
235
let hl_loop_ch = comm:: chan ( hl_loop_port) ;
235
236
task:: spawn_sched ( task:: manual_threads ( 1 u) ) { ||
236
- let loop_ptr = ll:: loop_new ( ) ;
237
237
let msg_po = comm:: port :: < high_level_msg > ( ) ;
238
238
let msg_ch = comm:: chan ( msg_po) ;
239
239
run_high_level_loop (
240
- loop_ptr,
241
240
msg_po,
242
241
// before_run
243
242
{ |async_handle|
@@ -261,7 +260,6 @@ mod test {
261
260
log ( debug, #fmt ( "hl test_loop b4_tear_down: async %?" ,
262
261
async_handle) ) ;
263
262
} ) ;
264
- ll:: loop_delete ( loop_ptr) ;
265
263
comm:: send ( exit_ch, ( ) ) ;
266
264
} ;
267
265
ret comm:: recv ( hl_loop_port) ;
0 commit comments