@@ -49,7 +49,8 @@ fn ip_to_sbuf(ip: net::ip_addr) -> *u8 unsafe {
49
49
vec:: to_ptr ( str:: bytes ( net:: format_addr ( ip) ) )
50
50
}
51
51
52
- fn connect_task ( ip : net:: ip_addr , portnum : int , evt : chan < socket_event > ) {
52
+ fn # connect_task ( args : ( net:: ip_addr , int , chan < socket_event > ) ) {
53
+ let ( ip, portnum, evt) = args;
53
54
let connecter = port ( ) ;
54
55
rustrt:: aio_connect ( ip_to_sbuf ( ip) , portnum, chan ( connecter) ) ;
55
56
let client = recv ( connecter) ;
@@ -83,7 +84,8 @@ fn new_client(client: client, evt: chan<socket_event>) {
83
84
log "close message sent" ;
84
85
}
85
86
86
- fn accept_task ( client : client , events : chan < server_event > ) {
87
+ fn # accept_task ( args : ( client , chan < server_event > ) ) {
88
+ let ( client, events) = args;
87
89
log "accept task was spawned" ;
88
90
let p = port ( ) ;
89
91
send ( events, pending ( chan ( p) ) ) ;
@@ -92,8 +94,9 @@ fn accept_task(client: client, events: chan<server_event>) {
92
94
log "done accepting" ;
93
95
}
94
96
95
- fn server_task ( ip : net:: ip_addr , portnum : int , events : chan < server_event > ,
96
- server : chan < server > ) {
97
+ fn # server_task ( args : ( net:: ip_addr , int , chan < server_event > ,
98
+ chan < server > ) ) {
99
+ let ( ip, portnum, events, server) = args;
97
100
let accepter = port ( ) ;
98
101
send ( server, rustrt:: aio_serve ( ip_to_sbuf ( ip) , portnum, chan ( accepter) ) ) ;
99
102
@@ -104,11 +107,11 @@ fn server_task(ip: net::ip_addr, portnum: int, events: chan<server_event>,
104
107
if rustrt:: aio_is_null_client ( client) {
105
108
log "client was actually null, returning" ;
106
109
ret;
107
- } else { task:: spawn ( bind accept_task ( client, events) ) ; }
110
+ } else { task:: spawn2 ( ( client, events) , accept_task ) ; }
108
111
}
109
112
}
110
113
111
- fn request_task ( c : chan < ctx > ) {
114
+ fn # request_task ( c : chan < ctx > ) {
112
115
// Create a port to accept IO requests on
113
116
let p = port ( ) ;
114
117
// Hand of its channel to our spawner
@@ -126,10 +129,10 @@ fn request_task(c: chan<ctx>) {
126
129
ret;
127
130
}
128
131
connect ( remote ( ip, portnum) , client) {
129
- task:: spawn ( bind connect_task ( ip, portnum, client) ) ;
132
+ task:: spawn2 ( ( ip, portnum, client) , connect_task ) ;
130
133
}
131
134
serve ( ip, portnum, events, server) {
132
- task:: spawn ( bind server_task ( ip, portnum, events, server) ) ;
135
+ task:: spawn2 ( ( ip, portnum, events, server) , server_task ) ;
133
136
}
134
137
write ( socket, v, status) unsafe {
135
138
rustrt:: aio_writedata ( socket, vec:: unsafe:: to_ptr :: < u8 > ( v) ,
@@ -147,14 +150,14 @@ fn request_task(c: chan<ctx>) {
147
150
}
148
151
}
149
152
150
- fn iotask ( c : chan < ctx > ) {
153
+ fn # iotask ( c : chan < ctx > ) {
151
154
log "io task spawned" ;
152
155
// Initialize before accepting requests
153
156
rustrt:: aio_init ( ) ;
154
157
155
158
log "io task init" ;
156
159
// Spawn our request task
157
- let reqtask = task:: spawn_joinable ( bind request_task ( c ) ) ;
160
+ let reqtask = task:: spawn_joinable2 ( c , request_task) ;
158
161
159
162
log "uv run task init" ;
160
163
// Enter IO loop. This never returns until aio_stop is called.
@@ -166,7 +169,7 @@ fn iotask(c: chan<ctx>) {
166
169
167
170
fn new ( ) -> ctx {
168
171
let p: port < ctx > = port ( ) ;
169
- task:: spawn ( bind iotask ( chan ( p) ) ) ;
172
+ task:: spawn2 ( chan ( p) , iotask ) ;
170
173
ret recv( p) ;
171
174
}
172
175
0 commit comments