Package org.gradle.build.event

## Interface BuildEventsListenerRegistry

-     @Incubating
      public interface BuildEventsListenerRegistry

  Allows a plugin to receive information about the operations that run within a build.

  An instance of this registry can be injected into tasks, plugins and other objects by annotating a public constructor or property getter method with `javax.inject.Inject`.

  Since:
    6.1

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `onTaskCompletion​(Provider<? extends OperationCompletionListener> listener)` | Subscribes the given listener to the finish events for tasks, if not already subscribed.

- - ### Method Detail

    - #### onTaskCompletion

          void onTaskCompletion​(Provider<? extends OperationCompletionListener> listener)

      Subscribes the given listener to the finish events for tasks, if not already subscribed. The listener receives a `TaskFinishEvent` as each task completes.

      The events are delivered to the listener one at a time, so the implementation does not need to be thread-safe. Also, events are delivered to the listener concurrently with task execution and other work, so event handling does not block task execution. This means that a task finish event is delivered to the listener some time "soon" after the task has completed. The events contain timestamps to allow you collect timing information.

      The listener is automatically unsubscribed when the build finishes.

      Parameters:
        `listener` - The listener to receive events. This must be a `BuildService` instance, see `BuildServiceRegistry`.