     case createNew
 }
 
+#if swift(>=5.7)
+extension NIOEventLoopGroupProvider: Sendable {}
+#endif
+
 /// Different `Error`s that are specific to `EventLoop` operations / implementations.
 public enum EventLoopError: Error {
     /// An operation was executed that is not supported by the `EventLoop`

    /// - note: The `in` value is clamped to a maximum when running on a Darwin-kernel.
    @discardableResult
    func scheduleTask<T>(in: TimeAmount, _ task: @escaping () throws -> T) -> Scheduled<T>

    /// Asserts that the current thread is the one tied to this `EventLoop`.
    /// Otherwise, the process will be abnormally terminated as per the semantics of `preconditionFailure(_:file:line:)`.

/// A `Scheduled` allows the user to either `cancel()` the execution of the scheduled task (if possible) or obtain a reference to the `EventLoopFuture` that
/// will be notified once the execution is complete.
public struct Scheduled<T> {
    #if swift(>=5.7)
    @usableFromInline typealias CancelationCallback = @Sendable () -> Void
    #else
    @usableFromInline typealias CancelationCallback = () -> Void
    #endif
    /* private but usableFromInline */ @usableFromInline let _promise: EventLoopPromise<T>
    /* private but usableFromInline */ @usableFromInline let _cancellationTask: CancelationCallback
    
    #if swift(>=5.7)
    @inlinable
    @preconcurrency
    public init(promise: EventLoopPromise<T>, cancellationTask: @escaping @Sendable () -> Void) {
        self._promise = promise
        self._cancellationTask = cancellationTask
    }
    #else
    @inlinable
    public init(promise: EventLoopPromise<T>, cancellationTask: @escaping () -> Void) {
        self._promise = promise
        self._cancellationTask = cancellationTask
    }
    #endif

    /// Try to cancel the execution of the scheduled task.
    ///
