crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в chrono::duration удвоенный интервал
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Iron Bug Дата 26.4.2013, 20:30
 
Цитата(Disaron @ 26.4.2013, 18:06) *
остальным виндузятникам-мингвшникам ждать 1.54.

я всегда юзала boost::date_time::posix_time для этих целей. всё работает под вендой и линюксом.
Disaron Дата 26.4.2013, 15:06
  Для столкнувшихся с подобным, спасибо конфе, вот: https://svn.boost.org/trac/boost/ticket/8136

Перешел на std, проблем нет, остальным виндузятникам-мингвшникам ждать 1.54. Тему можно закрывать.
Disaron Дата 25.4.2013, 21:01
  Сегодня терли на конфе в джаббере. Пока сошлись на том, что я попробую собрать на пингвине, но руки не дошли. Возможно это глюк винды, либо неправильная сборка буста. Хотя там тоже у 2 из 3 людей получилось в два раза больше.

Эта функция, как и большинство кода - фикция, в боевом приложении 80% этой ереси не будет.
Iron Bug Дата 25.4.2013, 18:29
  да вроде бы всё нормально работает. периоды - по 250мс (проверила под Linux Debian 64, GCC 4.7.2)
только одна мелкая ошибка: нет возврата из функции bool ThreadedList::addJob(const string job). но она не влияет на работу программы.
Disaron Дата 17.4.2013, 9:47
  Начал работать с бустом, и вылезла непонятная мне хрень:
void TaskExecuter::operator()()
{
    string strt;
    {
        stringstream ss;
        ss << string("Started_") << m_id;
        ss >> strt;
    }
    using namespace posix_time;
    for (int i = 0; i < 5; ++i) {
        string str = strt + " " + (to_simple_string(microsec_clock::local_time()) + "\n\r");;
        this_thread::sleep_for(chrono::duration<int, milli>(250));
        m_jobList->addJob(str);
    }
}


Код работает в несколько потоков, и получается, что задержка происходит не на положенные 250мс, а на ровно в два раза больше - 500. Изменение периода ситуации не меняет - все равно в два раза больше. В чем может быть ошибка?
Прикрепленный файл  fgwbst.zip ( 5.97 килобайт ) Кол-во скачиваний: 242
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 5.8.2020, 18:53