@@ -40,18 +40,24 @@ impl Poller {
40
40
source : impl AsFd ,
41
41
interest : Interest ,
42
42
) {
43
- let fd = source. as_fd ( ) . as_raw_fd ( ) ;
44
- let ( add, del) = match interest {
45
- Interest :: Read => ( EventFilter :: Read ( fd) , EventFilter :: Write ( fd) ) ,
46
- Interest :: Write => ( EventFilter :: Write ( fd) , EventFilter :: Read ( fd) ) ,
47
- } ;
48
43
let id = process. identifier ( ) as isize ;
44
+ let fd = source. as_fd ( ) . as_raw_fd ( ) ;
49
45
let flags =
50
46
EventFlags :: CLEAR | EventFlags :: ONESHOT | EventFlags :: RECEIPT ;
51
- let events = [
52
- Event :: new ( add, EventFlags :: ADD | flags, id) ,
53
- Event :: new ( del, EventFlags :: DELETE , 0 ) ,
54
- ] ;
47
+ let events = match interest {
48
+ Interest :: Read => [
49
+ Event :: new ( EventFilter :: Read ( fd) , EventFlags :: ADD | flags, id) ,
50
+ Event :: new ( EventFilter :: Write ( fd) , EventFlags :: DELETE , 0 ) ,
51
+ ] ,
52
+ Interest :: Write => [
53
+ Event :: new ( EventFilter :: Write ( fd) , EventFlags :: ADD | flags, id) ,
54
+ Event :: new ( EventFilter :: Read ( fd) , EventFlags :: DELETE , 0 ) ,
55
+ ] ,
56
+ Interest :: ReadWrite => [
57
+ Event :: new ( EventFilter :: Write ( fd) , EventFlags :: ADD | flags, id) ,
58
+ Event :: new ( EventFilter :: Read ( fd) , EventFlags :: ADD | flags, id) ,
59
+ ] ,
60
+ } ;
55
61
56
62
self . apply ( & events) ;
57
63
}
0 commit comments