Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Current scheduler and I/O work #6577

Closed
wants to merge 58 commits into from
Closed

Conversation

brson
Copy link
Contributor

@brson brson commented May 18, 2013

r?

This is all of my scheduler work on #4419 from the last 3 weeks or so. I've had a few failed pull requests so far but I think the problems are ironed out.

  • TCP
  • The beginnings of runtime embedding APIs
  • Porting various corners of core to be compatible with both schedulers
  • libuv timer bindings
  • Further refinement of I/O error handling, including a new, incomplete, read_error condition
  • Incomplete refactoring to make tasks work without coroutines and user-space scheduling
  • Implementations of Reader/Writer extension methods
  • Implementations of the most important part of core::comm

I'm particularly happy with how easy it is to make the comm types on top of the scheduler. Note that these implementations do not use pipes. If anything here needs careful review though it's this code.

This branch passes 95% of the run-pass tests (with TESTARGS=--newrt)

In the next week I'll probably spend some time adding preliminary multithreading and seeing how close we are to removing the old runtime.

brson added 30 commits May 13, 2013 14:24
We will just use RAII for now.
This ended up touching a lot of code related to error handling.
Make names that better match rt::io. Return error types.
Put all uv code under rt::uv, as if it were in its own crate.
Pull local_sched out of rt::sched.
…ween Scheduler and Task

Called 'Tube' for lack of anything better.
Conflicts:
	src/libcore/logging.rs
	src/libcore/rt/local_services.rs
	src/libcore/rt/uv/mod.rs
	src/libcore/rt/uv/net.rs
	src/libcore/rt/uv/uvio.rs
	src/libcore/unstable.rs
brson added 25 commits May 15, 2013 12:19
…6377

Not necessary just yet but they make ARC not work.
It is more general-purpose than holding scheduler pointers
Some resolve problem is keeping the tests from working
bors added a commit that referenced this pull request May 19, 2013
r?

This is all of my scheduler work on #4419 from the last 3 weeks or so. I've had a few failed pull requests so far but I think the problems are ironed out.

* TCP
* The beginnings of runtime embedding APIs
* Porting various corners of core to be compatible with both schedulers
* libuv timer bindings
* Further refinement of I/O error handling, including a new, incomplete, `read_error` condition
* Incomplete refactoring to make tasks work without coroutines and user-space scheduling
* Implementations of Reader/Writer extension methods
* Implementations of the most important part of core::comm

I'm particularly happy with how easy the [comm types on top of the scheduler](https://github.com/brson/rust/blob/io-upstream/src/libcore/rt/comm.rs). Note that these implementations do not use pipes. If anything here needs careful review though it's this code.

This branch passes 95% of the run-pass tests (with `TESTARGS=--newrt`)

In the next week I'll probably spend some time adding preliminary multithreading and seeing how close we are to removing the old runtime.
@bors bors closed this May 19, 2013
flip1995 pushed a commit to flip1995/rust that referenced this pull request Jan 30, 2021
…p1995

New Lint: inspect_then_for_each

**Work In Progress**

This PR addresses [Issue 5209](rust-lang/rust-clippy#5209) and adds a new lint called `inspect_then_for_each`.

Current seek some guidance.

If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.

- \[x] Followed [lint naming conventions][lint_naming]
- \[x] Added passing UI tests (including committed `.stderr` file)
- \[x] `cargo test` passes locally
- \[x] Executed `cargo dev update_lints`
- \[x] Added lint documentation
- \[x] Run `cargo dev fmt`

[lint_naming]: https://rust-lang.github.io/rfcs/0344-conventions-galore.html#lints

---

changelog: Add [`inspect_for_each`] lint for the use of `inspect().for_each()` on `Iterators`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants