<commit_before>module Concurrently
  # @api public
  #
  # @note Although you probably won't need to interact with the event loop
  #   directly (unless you call `Kernel#fork`, see {#reinitialize!}), you need
  #   to understand that it's there.
  #
  # `Concurrently::EventLoop`, like any event loop, is the heart of your
  # application and **must never be interrupted, blocked or overloaded.** A
  # healthy event loop is one that can respond to new events immediately.
  #
  # The event loop is responsible for selecting/polling IOs and waiting for
  # a given amount of time. It does all the coordination between concurrent
  # procs. Every thread has a single event loop attached to it.
  #
  # The loop runs in the background and you won't interact with it directly.
  # Instead, when you call one of the #await_* methods the bookkeeping of
  # selecting IOs for readiness or waiting a given amount of time is done for
  # you.
  #
  # To make sure your event loop functions properly, keep the following in
  # mind:
  #
  # # Interrupted by errors
  #
  # Every concurrent proc rescues all errors happening during its evaluation.
  # They won't leak to the event loop and will not tear it down. In a limited
  # number of very particular cases an error happens right when switching from
  # one concurrent proc to another. If this happens the event loop is indeed
  # teared down and exits by raising an {Concurrently::Error}. This is either
  # a sign that there is a bug in this library, you fumbled around with its
  # internals or you did some custom stuff with fibers interfering with the
  # fibers of concurrent procs.
  #
  #
  # # Blocked by IO<commit_msg>improved documentation of error handling<commit_after>module Concurrently
  # @api public
  #
  # @note Although you probably won't need to interact with the event loop
  #   directly (unless you call `Kernel#fork`, see {#reinitialize!}), you need
  #   to understand that it's there.
  #
  # `Concurrently::EventLoop`, like any event loop, is the heart of your
  # application and **must never be interrupted, blocked or overloaded.** A
  # healthy event loop is one that can respond to new events immediately.
  #
  # The event loop is responsible for selecting/polling IOs and waiting for
  # a given amount of time. It does all the coordination between concurrent
  # procs. Every thread has a single event loop attached to it.
  #
  # The loop runs in the background and you won't interact with it directly.
  # Instead, when you call one of the #await_* methods the bookkeeping of
  # selecting IOs for readiness or waiting a given amount of time is done for
  # you.
  #
  # To make sure your event loop functions properly, keep the following in
  # mind:
  #
  # # Interrupted by errors
  #
  # Every concurrent proc rescues the following errors happening during its
  # evaluation: `NoMemoryError`, `ScriptError`, `SecurityError`,
  # `StandardError` and `SystemStackError`. These are all errors that should
  # not have an influence on other concurrent procs or the application as a
  # whole. They won't leak to the event loop and will not tear it down.
  #
  # All other errors happening inside a concurrent proc *will* tear down the
  # event loop. These error types are: `SignalException`, `SystemExit` and the
  # general `Exception`. In such a case the event loop exits by raising a
  # {Concurrently::Error}.
  #
  # If your application continues running after the event loop has been teared
  # down you get a couple of fiber errors (probably "dead fiber called").
  #
  #
  # # Blocked by IO
{'fraction_non_alphanumeric': 0.060842869104102706, 'fraction_numerical': 0.0, 'mean_word_length': 3.577266922094508, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3996736', 'n_tokens_mistral': 962, 'n_tokens_neox': 925, 'n_words': 516}