Changeset 4164


Ignore:
Timestamp:
Mar 13, 2022, 11:47:56 PM (7 months ago)
Author:
Peter
Message:

Merge release 0.19.1 into trunk

Location:
trunk
Files:
9 edited
3 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/NEWS

    r4110 r4164  
    1010
    1111yat 0.19.x series from http://dev.thep.lu.se/yat/svn/branches/0.19-stable
     12
     13version 0.19.1 (released 13 March 2022)
     14  - Several bugs in Scheduler have been fixed (#980, #981, #982)
     15
     16  A complete list of closed tickets can be found here [[br]]
     17  https://dev.thep.lu.se/yat/query?status=closed&milestone=yat+0.19.1
    1218
    1319version 0.19 (released 27 September 2021)
     
    574580Copyright (C) 2010, 2011 Peter Johansson
    575581Copyright (C) 2012 Jari Häkkinen, Peter Johansson
    576 Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Peter Johansson
     582Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Peter Johansson
    577583
    578584This file is part of yat library, http://dev.thep.lu.se/yat
  • trunk/README.developer

    r4110 r4164  
    354354
    355355    a) Update version number in 'm4/version.m4'. Locate and change the
    356        below line
     356       below lines
    357357
    3583588<---
    359359       MY_VERSION_early([A], [B], [C+1], [true])
     3608<-
     361       m4_define([YAT_LT_VERSION_INFO], [c:r+1:a])
    3603628<---
    361363
  • trunk/m4/version.m4

    r4110 r4164  
    22#
    33# Copyright (C) 2008, 2009 Jari Häkkinen, Peter Johansson
    4 # Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2017, 2018, 2019, 2020, 2021 Peter Johansson
     4# Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2017, 2018, 2019, 2020, 2021, 2022 Peter Johansson
    55#
    66# This file is part of the yat library, http://dev.thep.lu.se/yat
     
    9898# yat-0.18.1 15:1:0
    9999# yat-0.19   16:0:0
     100# yat-0.19.1 16:1:0
    100101#
    101102# *Accidently, the libtool number was not updated for yat 0.5
  • trunk/test/Makefile.am

    r4153 r4164  
    55# Copyright (C) 2005 Jari Häkkinen, Peter Johansson
    66# Copyright (C) 2006, 2007, 2008 Jari Häkkinen, Peter Johansson, Markus Ringnér
    7 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Peter Johansson
     7# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Peter Johansson
    88#
    99# This file is part of the yat library, http://dev.thep.lu.se/yat
     
    122122  test/scheduler6.test \
    123123  test/scheduler7.test \
     124  test/scheduler8.test \
     125  test/scheduler9.test \
    124126  test/segment.test test/smart_ptr.test \
    125127  test/smith_waterman.test \
     
    129131  test/svm_multi_class.test test/target.test \
    130132  test/ttest.test test/tukey.test \
     133  test/unity_scaler.test \
    131134  test/utility.test test/vector.test test/version.test \
    132135  test/weighted_iterator_archetype.test \
  • trunk/test/vcf.cc

    r4154 r4164  
    121121      suite.err() << "info:     " << vcf.info() << "\n";
    122122      suite.err() << "expected: " << correct << "\n";
     123    }
     124    if (vcf.info().count("BAR") != 1) {
     125      suite.add(false);
     126      suite.err() << "error: count(\"BAR\") not returning 1\n";
    123127    }
    124128
  • trunk/yat/normalizer/UnityScaler.h

    r3957 r4164  
    55
    66/*
    7   Copyright (C) 2020 Peter Johansson
     7  Copyright (C) 2020, 2022 Peter Johansson
    88
    99  This file is part of the yat library, http://dev.thep.lu.se/yat
     
    2828
    2929#include <functional>
     30#include <numeric>
    3031
    3132namespace theplu {
  • trunk/yat/utility/Aligner.cc

    r4125 r4164  
    3232#include <ostream>
    3333
    34 #include <iostream>
    3534namespace theplu {
    3635namespace yat {
     
    163162  {
    164163    try {
    165       std::cerr << "Cigar: " << s << "\n";
    166164      std::istringstream is(s);
    167165      while (parse_element(is));
  • trunk/yat/utility/Scheduler.cc

    r3948 r4164  
    22
    33/*
    4   Copyright (C) 2014, 2015, 2017, 2019, 2020 Peter Johansson
     4  Copyright (C) 2014, 2015, 2017, 2019, 2020, 2022 Peter Johansson
    55
    66  This file is part of the yat library, http://dev.thep.lu.se/yat
     
    5858
    5959    data_.messengers().push(boost::make_shared<InterruptWorkers>());
     60    // wait for job handler to finish
     61    job_handler_.join();
     62    throw_if_error();
    6063  }
    6164
     
    103106  {
    104107    boost::exception_ptr error;
    105     if (data_.error().try_pop(error))
     108    if (data_.error().try_pop(error)) {
     109      if (job_handler_.joinable()) {
     110        // let the job handler know we're waiting
     111        const_cast<JobHandlerData&>(data_).messengers().push(boost::make_shared<SchedulerIsWaiting>());
     112        const_cast<std::thread&>(job_handler_).join();
     113      }
    106114      boost::rethrow_exception(error);
     115    }
    107116  }
    108117
     
    490499  void Scheduler::JobHandler::interrupt_workers(void)
    491500  {
    492     data_->queue().clear();
     501    JobPtr tmp;
     502    // We would like to clear the queue and reduce running_jobs with
     503    // the reduced size, but ATM there is no way to lock the queue to
     504    // ensure an Worker is not modifying it between we assess the size
     505    // and clear it.
     506    while (data_->queue().try_pop(tmp))
     507      data_->running_jobs().decrement();
     508
    493509    kill_workers();
    494510  }
     
    514530    if (job->error_) {
    515531      data_->error().push(job->error_);
     532      interrupt_workers();
    516533      return;
    517534    }
     
    623640      data_->messengers().pop(msg);
    624641      (*msg)(*this);
    625 
    626       // Check for error
    627       //
    628       // Since we are in a background thread, we cannot throw from
    629       // here, instead interrupt workers and return early.
    630       if (!data_->error().empty()) {
    631         data_->running_jobs().set(0);
    632         interrupt_workers();
    633         break;
    634       }
    635642    }
    636643
Note: See TracChangeset for help on using the changeset viewer.