Skip to content

Conversation

Darksonn
Copy link
Contributor

Issue #6374 reports that AsyncSeek::poll_complete could return the wrong value if start_seek was never called on a File. However, you are required to call start_seek first if you want to use the position returned by poll_complete. Update the documentation to reflect this.

Closes: #6374

@Darksonn Darksonn added T-docs Topic: documentation A-tokio Area: The main tokio crate M-io Module: tokio/io labels May 27, 2025
Copy link
Member

@mox692 mox692 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Expanding the documentation to prevent any misuse sounds good to me. (Also, thank you @Suryakant-Soni for looking into this!)

@Darksonn Darksonn merged commit 328bd04 into master May 28, 2025
92 checks passed
@Darksonn Darksonn deleted the alice/clarify-seek-behavior-6374 branch May 28, 2025 11:00
hawkw added a commit that referenced this pull request Jul 1, 2025
# 1.46.0 (July 1st, 2025)

### Fixed

- net: fixed `TcpStream::shutdown` incorrectly returning an error on macOS
  ([#7290])

## Added

- sync: `mpsc::OwnedPermit::{same_channel, same_channel_as_sender}` methods
  ([#7389])
- macros: `biased` option for `join!` and `try_join!`, similar to `select!`
  ([#7307])
- net: support for cygwin ([#7393])
- net: support `pope::OpenOptions::read_write` on Android ([#7426])
- net: add `Clone` implementation for `net::unix::SocketAddr` ([#7422])

## Changed

- runtime: eliminate unnecessary lfence while operating on `queue::Local<T>`
  ([#7340])
- task: disallow blocking in `LocalSet::{poll,drop}` ([#7372])

## Unstable

- runtime: add `TaskMeta::spawn_location` tracking where a task was spawned
  ([#7417])
- runtime: removed borrow from `LocalOptions` parameter to
  `runtime::Builder::build_local` ([#7346])

## Documented

- io: clarify behavior of seeking when `start_seek` is not used ([#7366])
- io: document cancellation safety of `AsyncWriteExt::flush` ([#7364])
- net: fix docs for `recv_buffer_size` method ([#7336])
- net: fix broken link of `RawFd` in `TcpSocket` docs ([#7416])
- net: update `AsRawFd` doc link to current Rust stdlib location ([#7429])
- readme: fix double period in reactor description (#7363)
- runtime: add doc note that `on_*_task_poll` is unstable ([#7311])
- sync: update broadcast docs on allocation failure ([#7352])
- time: add a missing panic scenario of `time::advance` ([#7394])

[#7290]: #7290
[#7307]: #7307
[#7311]: #7311
[#7336]: #7336
[#7340]: #7340
[#7346]: #7346
[#7352]: #7352
[#7364]: #7364
[#7366]: #7366
[#7372]: #7372
[#7389]: #7389
[#7393]: #7393
[#7394]: #7394
[#7416]: #7416
[#7422]: #7422
[#7426]: #7426
[#7429]: #7429
[#7417]: #7417
hawkw added a commit that referenced this pull request Jul 1, 2025
# 1.46.0 (July 1st, 2025)

### Fixed

- net: fixed `TcpStream::shutdown` incorrectly returning an error on macOS
  ([#7290])

## Added

- sync: `mpsc::OwnedPermit::{same_channel, same_channel_as_sender}` methods
  ([#7389])
- macros: `biased` option for `join!` and `try_join!`, similar to `select!`
  ([#7307])
- net: support for cygwin ([#7393])
- net: support `pope::OpenOptions::read_write` on Android ([#7426])
- net: add `Clone` implementation for `net::unix::SocketAddr` ([#7422])

## Changed

- runtime: eliminate unnecessary lfence while operating on `queue::Local<T>`
  ([#7340])
- task: disallow blocking in `LocalSet::{poll,drop}` ([#7372])

## Unstable

- runtime: add `TaskMeta::spawn_location` tracking where a task was spawned
  ([#7417])
- runtime: removed borrow from `LocalOptions` parameter to
  `runtime::Builder::build_local` ([#7346])

## Documented

- io: clarify behavior of seeking when `start_seek` is not used ([#7366])
- io: document cancellation safety of `AsyncWriteExt::flush` ([#7364])
- net: fix docs for `recv_buffer_size` method ([#7336])
- net: fix broken link of `RawFd` in `TcpSocket` docs ([#7416])
- net: update `AsRawFd` doc link to current Rust stdlib location ([#7429])
- readme: fix double period in reactor description (#7363)
- runtime: add doc note that `on_*_task_poll` is unstable ([#7311])
- sync: update broadcast docs on allocation failure ([#7352])
- time: add a missing panic scenario of `time::advance` ([#7394])

[#7290]: #7290
[#7307]: #7307
[#7311]: #7311
[#7336]: #7336
[#7340]: #7340
[#7346]: #7346
[#7352]: #7352
[#7364]: #7364
[#7366]: #7366
[#7372]: #7372
[#7389]: #7389
[#7393]: #7393
[#7394]: #7394
[#7416]: #7416
[#7422]: #7422
[#7426]: #7426
[#7429]: #7429
[#7417]: #7417
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-tokio Area: The main tokio crate M-io Module: tokio/io T-docs Topic: documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

tokio::fs::File::from_std() assumes current file position is zero
2 participants