Skip to content

Commit c30df29

Browse files
authored
Fix socket close process for polling driver (#730)
1 parent d62d87c commit c30df29

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ ntex-bytes = "1.4.1"
4747
ntex-codec = "1.1.0"
4848
ntex-io = "3.6.0"
4949
ntex-dispatcher = "3.0.0"
50-
ntex-net = "3.5.1"
50+
ntex-net = "3.5.2"
5151
ntex-http = "1.0.0"
5252
ntex-router = "1.0.0"
5353
ntex-rt = "3.5.0"

ntex-net/CHANGES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changes
22

3+
## [3.5.2] - 2026-01-29
4+
5+
* Fix socket close process for polling driver
6+
37
## [3.5.1] - 2026-01-08
48

59
* Remove changes queue checks for io-uring driver

ntex-net/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ntex-net"
3-
version = "3.5.1"
3+
version = "3.5.2"
44
authors = ["ntex contributors <team@ntex.rs>"]
55
description = "ntexwork utils for ntex framework"
66
keywords = ["network", "framework", "async", "futures"]

ntex-net/src/polling/stream.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -221,14 +221,14 @@ impl StreamOpsInner {
221221
item.ctx.stop(None);
222222
}
223223
self.api.detach(fd, id);
224-
ntex_rt::spawn_blocking(move || {
225-
if let Err(err) = syscall!(libc::close(fd)) {
226-
log::error!("Cannot close file descriptor ({fd:?}), {err:?}");
227-
}
228-
});
229224

230225
if item.flags.contains(Flags::DROPPED_SEC) {
231226
let item = streams.remove(idx);
227+
ntex_rt::spawn_blocking(move || {
228+
if let Err(err) = syscall!(libc::close(fd)) {
229+
log::error!("Cannot close file descriptor ({fd:?}), {err:?}");
230+
}
231+
});
232232
mem::forget(item.io);
233233
} else {
234234
item.flags.insert(Flags::DROPPED_PRI);
@@ -247,6 +247,12 @@ impl StreamOpsInner {
247247

248248
if item.flags.contains(Flags::DROPPED_PRI) {
249249
let item = streams.remove(idx);
250+
let fd = item.fd();
251+
ntex_rt::spawn_blocking(move || {
252+
if let Err(err) = syscall!(libc::close(fd)) {
253+
log::error!("Cannot close file descriptor ({fd:?}), {err:?}");
254+
}
255+
});
250256
mem::forget(item.io);
251257
} else {
252258
item.flags.insert(Flags::DROPPED_SEC);

0 commit comments

Comments
 (0)