comparison Core/MultiThreading/RunnableWorkersPool.cpp @ 3786:3801435e34a1 SylvainRouquette/fix-issue169-95b752c

integration Orthanc-1.6.0->SylvainRouquette
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 19 Mar 2020 11:48:30 +0100
parents 2a170a8f1faf
children
comparison
equal deleted inserted replaced
3785:763533d6dd67 3786:3801435e34a1
1 /** 1 /**
2 * Orthanc - A Lightweight, RESTful DICOM Store 2 * Orthanc - A Lightweight, RESTful DICOM Store
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics 3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 * Department, University Hospital of Liege, Belgium 4 * Department, University Hospital of Liege, Belgium
5 * Copyright (C) 2017-2019 Osimis S.A., Belgium 5 * Copyright (C) 2017-2020 Osimis S.A., Belgium
6 * 6 *
7 * This program is free software: you can redistribute it and/or 7 * This program is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as 8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation, either version 3 of the 9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version. 10 * License, or (at your option) any later version.
33 33
34 #include "../PrecompiledHeaders.h" 34 #include "../PrecompiledHeaders.h"
35 #include "RunnableWorkersPool.h" 35 #include "RunnableWorkersPool.h"
36 36
37 #include "SharedMessageQueue.h" 37 #include "SharedMessageQueue.h"
38 #include "../Compatibility.h"
38 #include "../OrthancException.h" 39 #include "../OrthancException.h"
39 #include "../Logging.h" 40 #include "../Logging.h"
40 41
41 namespace Orthanc 42 namespace Orthanc
42 { 43 {
53 { 54 {
54 while (that->continue_) 55 while (that->continue_)
55 { 56 {
56 try 57 try
57 { 58 {
58 std::auto_ptr<IDynamicObject> obj(that->queue_.Dequeue(100)); 59 std::unique_ptr<IDynamicObject> obj(that->queue_.Dequeue(100));
59 if (obj.get() != NULL) 60 if (obj.get() != NULL)
60 { 61 {
61 IRunnableBySteps& runnable = *dynamic_cast<IRunnableBySteps*>(obj.get()); 62 IRunnableBySteps& runnable = *dynamic_cast<IRunnableBySteps*>(obj.get());
62 63
63 bool wishToContinue = runnable.Step(); 64 bool wishToContinue = runnable.Step();