File tree 3 files changed +11
-1
lines changed
modules/event/engines/epoll 3 files changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -78,6 +78,9 @@ bool EpollFdEvent::enable()
78
78
if (events_ & kExceptEvent )
79
79
++d_->except_event_num ;
80
80
81
+ if (events_ & kHupEvent )
82
+ ++d_->hup_event_num ;
83
+
81
84
d_->fd_events .push_back (this );
82
85
83
86
reloadEpoll ();
@@ -100,6 +103,9 @@ bool EpollFdEvent::disable()
100
103
if (events_ & kExceptEvent )
101
104
--d_->except_event_num ;
102
105
106
+ if (events_ & kHupEvent )
107
+ --d_->hup_event_num ;
108
+
103
109
auto iter = std::find (d_->fd_events .begin (), d_->fd_events .end (), this );
104
110
d_->fd_events .erase (iter);
105
111
@@ -129,6 +135,9 @@ void EpollFdEvent::reloadEpoll()
129
135
if (d_->except_event_num > 0 )
130
136
new_events |= EPOLLERR;
131
137
138
+ if (d_->hup_event_num > 0 )
139
+ new_events |= EPOLLHUP;
140
+
132
141
d_->ev .events = new_events;
133
142
134
143
if (old_events == 0 ) {
Original file line number Diff line number Diff line change @@ -37,6 +37,7 @@ struct EpollFdSharedData {
37
37
int read_event_num = 0 ; // !< 监听可读事件的FdEvent个数
38
38
int write_event_num = 0 ; // !< 监听可写事件的FdEvent个数
39
39
int except_event_num = 0 ; // !< 监听异常事件的FdEvent个数
40
+ int hup_event_num = 0 ; // !< 监听挂起事件的FdEvent个数
40
41
41
42
std::vector<EpollFdEvent*> fd_events;
42
43
};
Original file line number Diff line number Diff line change 1
1
# TBOX版本号
2
2
TBOX_VERSION_MAJOR := 1
3
3
TBOX_VERSION_MINOR := 8
4
- TBOX_VERSION_REVISION := 7
4
+ TBOX_VERSION_REVISION := 8
You can’t perform that action at this time.
0 commit comments