@@ -237,10 +237,14 @@ impl fmt::Debug for Handle {
237
237
// ===== impl Inner =====
238
238
239
239
impl Inner {
240
- /// Registers an I/O resource with the reactor.
240
+ /// Registers an I/O resource with the reactor for a given `mio::Ready` state .
241
241
///
242
242
/// The registration token is returned.
243
- pub ( super ) fn add_source ( & self , source : & dyn Evented ) -> io:: Result < Address > {
243
+ pub ( super ) fn add_source (
244
+ & self ,
245
+ source : & dyn Evented ,
246
+ ready : mio:: Ready ,
247
+ ) -> io:: Result < Address > {
244
248
let address = self . io_dispatch . alloc ( ) . ok_or_else ( || {
245
249
io:: Error :: new (
246
250
io:: ErrorKind :: Other ,
@@ -253,7 +257,7 @@ impl Inner {
253
257
self . io . register (
254
258
source,
255
259
mio:: Token ( address. to_usize ( ) ) ,
256
- mio :: Ready :: all ( ) ,
260
+ ready ,
257
261
mio:: PollOpt :: edge ( ) ,
258
262
) ?;
259
263
@@ -339,12 +343,12 @@ mod tests {
339
343
let inner = reactor. inner ;
340
344
let inner2 = inner. clone ( ) ;
341
345
342
- let token_1 = inner. add_source ( & NotEvented ) . unwrap ( ) ;
346
+ let token_1 = inner. add_source ( & NotEvented , mio :: Ready :: all ( ) ) . unwrap ( ) ;
343
347
let thread = thread:: spawn ( move || {
344
348
inner2. drop_source ( token_1) ;
345
349
} ) ;
346
350
347
- let token_2 = inner. add_source ( & NotEvented ) . unwrap ( ) ;
351
+ let token_2 = inner. add_source ( & NotEvented , mio :: Ready :: all ( ) ) . unwrap ( ) ;
348
352
thread. join ( ) . unwrap ( ) ;
349
353
350
354
assert ! ( token_1 != token_2) ;
@@ -360,15 +364,15 @@ mod tests {
360
364
// add sources to fill up the first page so that the dropped index
361
365
// may be reused.
362
366
for _ in 0 ..31 {
363
- inner. add_source ( & NotEvented ) . unwrap ( ) ;
367
+ inner. add_source ( & NotEvented , mio :: Ready :: all ( ) ) . unwrap ( ) ;
364
368
}
365
369
366
- let token_1 = inner. add_source ( & NotEvented ) . unwrap ( ) ;
370
+ let token_1 = inner. add_source ( & NotEvented , mio :: Ready :: all ( ) ) . unwrap ( ) ;
367
371
let thread = thread:: spawn ( move || {
368
372
inner2. drop_source ( token_1) ;
369
373
} ) ;
370
374
371
- let token_2 = inner. add_source ( & NotEvented ) . unwrap ( ) ;
375
+ let token_2 = inner. add_source ( & NotEvented , mio :: Ready :: all ( ) ) . unwrap ( ) ;
372
376
thread. join ( ) . unwrap ( ) ;
373
377
374
378
assert ! ( token_1 != token_2) ;
@@ -383,11 +387,11 @@ mod tests {
383
387
let inner2 = inner. clone ( ) ;
384
388
385
389
let thread = thread:: spawn ( move || {
386
- let token_2 = inner2. add_source ( & NotEvented ) . unwrap ( ) ;
390
+ let token_2 = inner2. add_source ( & NotEvented , mio :: Ready :: all ( ) ) . unwrap ( ) ;
387
391
token_2
388
392
} ) ;
389
393
390
- let token_1 = inner. add_source ( & NotEvented ) . unwrap ( ) ;
394
+ let token_1 = inner. add_source ( & NotEvented , mio :: Ready :: all ( ) ) . unwrap ( ) ;
391
395
let token_2 = thread. join ( ) . unwrap ( ) ;
392
396
393
397
assert ! ( token_1 != token_2) ;
0 commit comments