concurrent

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Add `GeneratePrecompiledScriptPluginAccessors` task skeleton

  1. … 13 more files in changeset.
Emit type-safe accessors for plugins in the compile classpath

  1. … 17 more files in changeset.
Move kotlin-dsl in a sub directory

  1. … 1575 more files in changeset.
Make the resolver thread a daemon thread

And fix the name of the class.

    • -0
    • +39
    ./ResurrectingThread.kt
  1. … 1 more file in changeset.
Let script dependencies resolver prioritise requests by recency

And signal the cancellation of superseded requests by responding with

`null`.

    • -0
    • +39
    ./RessurectingThread.kt
  1. … 7 more files in changeset.
Increase `IOScope#close` timeout to 1 minute

For clarity, that's one minute to let all pending IO operations

related to code generation complete before proceeding with script

compilation. And that's per project. For comparison, code generation

for all `gradle/gradle` projects complete way under a minute.

Let `DefaultAsyncIOScopeFactory` be `Closeable` so it's stopped

The Gradle service infrastructure requires services to implement

either `java.io.Closeable` or `o.g.i.concurrent.Stoppable` for their

proper shutdown.

See [CompositeStoppable#toStoppable](https://github.com/gradle/gradle/blob/506aa2182392c562c2a0a61e4ad44ccbf8888ff0/subprojects/base-services/src/main/java/org/gradle/internal/concurrent/CompositeStoppable.java#L74-L96).

Polish `org.gradle.kotlin.dsl.concurrent.IO`

- Move interfaces and extensions to dedicated file `IO.kt`

- Extract Gradle service interface

- Improve test synchronization

  1. … 6 more files in changeset.
Use a single IO thread per build

And let it be managed by Gradle's `ExecutorFactory` service.

See #1202

    • -0
    • +128
    ./BuildServices.kt
  1. … 7 more files in changeset.
Split accessor emitter implementation into multiple files

  1. … 11 more files in changeset.
Check for io failures once more after the thread has ended

To account for failures happening after all the work has been

enqueued.

Polish `AccessorBytecodeEmitter`

  1. … 2 more files in changeset.
Propagate errors from the writer thread back to the main thread

Don't call `mkdirs()` unnecessarily

  1. … 3 more files in changeset.
Emit source code

  1. … 5 more files in changeset.
Prepare `AccessorBytecodeEmitter` to also emit source code

By introducing `AccessorFragment` to hold together all the pieces required to

emit both source and byte code in a single place.

  1. … 5 more files in changeset.
Tag TODOs

  1. … 3 more files in changeset.
Move `TODO` comment

  1. … 1 more file in changeset.
Avoid the Stream API on Java 8

For it makes the script classloading cache integration test fail due

to being too resource hungry.

  1. … 1 more file in changeset.
Emit bytecode for plugin spec builders directly

This makes code generation faster by a factor of 100 which means it

now takes a few dozen milliseconds rather than a few seconds.

  1. … 16 more files in changeset.
Replace custom `Either<L, R>` type by builtin type `Result<T>`

Remove unused `tapi` function

Migrate to the official coroutines API

  1. … 4 more files in changeset.
Polish `RequestQueue`

By extracting common thread and queueing logic into `EventLoop<T>`.

  1. … 2 more files in changeset.
Move all subprojects to the `subprojects` directory

  1. … 519 more files in changeset.