<commit_before>/* vim: set sw=4 sts=4 et foldmethod=syntax : */

#include <subgraph_isomorphism/tvb_subgraph_isomorphism.hh>
#include <subgraph_isomorphism/supplemental_graphs.hh>

#include <graph/bit_graph.hh>
#include <graph/template_voodoo.hh>
#include <graph/degree_sort.hh>

#include <threads/queue.hh>

#include <algorithm>
#include <limits>
#include <random>
#include <future>

using namespace parasols;

using std::chrono::milliseconds;
using std::chrono::duration_cast;
using std::chrono::steady_clock;

namespace
{
    const constexpr int split_levels = 5;

    struct Tasks
    {
        std::vector<std::thread> threads;
        std::atomic<bool> finish;
        std::atomic<int> busy;
        std::list<std::function<void ()> > pending;
        std::mutex mutex;
        std::condition_variable cv;

        std::list<milliseconds> times;

        Tasks(unsigned n_threads)
        {
            finish = false;
            busy = 0;

            for (unsigned t = 0 ; t < n_threads ; ++t)
                threads.emplace_back([this] {
                        milliseconds total_work_time = milliseconds::zero();

                        while (true) {<commit_msg>We need to go deeper<commit_after>/* vim: set sw=4 sts=4 et foldmethod=syntax : */

#include <subgraph_isomorphism/tvb_subgraph_isomorphism.hh>
#include <subgraph_isomorphism/supplemental_graphs.hh>

#include <graph/bit_graph.hh>
#include <graph/template_voodoo.hh>
#include <graph/degree_sort.hh>

#include <threads/queue.hh>

#include <algorithm>
#include <limits>
#include <random>
#include <future>

using namespace parasols;

using std::chrono::milliseconds;
using std::chrono::duration_cast;
using std::chrono::steady_clock;

namespace
{
    const constexpr int split_levels = 10;

    struct Tasks
    {
        std::vector<std::thread> threads;
        std::atomic<bool> finish;
        std::atomic<int> busy;
        std::list<std::function<void ()> > pending;
        std::mutex mutex;
        std::condition_variable cv;

        std::list<milliseconds> times;

        Tasks(unsigned n_threads)
        {
            finish = false;
            busy = 0;

            for (unsigned t = 0 ; t < n_threads ; ++t)
                threads.emplace_back([this] {
                        milliseconds total_work_time = milliseconds::zero();

                        while (true) {
{'fraction_non_alphanumeric': 0.12023708721422523, 'fraction_numerical': 0.0046570702794242165, 'mean_word_length': 2.8548123980424145, 'pattern_counts': {'":': 0, '<': 37, '<?xml version=': 0, '>': 35, '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': '818950', 'n_tokens_mistral': 756, 'n_tokens_neox': 720, 'n_words': 158}