Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update python/clusters-multicpu to the new API.
[simgrid.git] / include / simgrid / kernel / Timer.hpp
index d9af16420a58be1e78d612a881585b1e134f52a4..010a66f8fa3f4f8ccc11461873b01df7649ad405 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (c) 2021. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2021-2023. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <boost/heap/fibonacci_heap.hpp>
 
-namespace simgrid {
-namespace kernel {
-namespace timer {
+namespace simgrid::kernel::timer {
 
 inline auto& kernel_timers() // avoid static initialization order fiasco
 {
-  using TimerQelt = std::pair<double, std::shared_ptr<Timer>>;
+  using TimerQelt = std::pair<double, Timer*>;
   static boost::heap::fibonacci_heap<TimerQelt, boost::heap::compare<xbt::HeapComparator<TimerQelt>>> value;
   return value;
 }
@@ -33,25 +30,22 @@ class Timer {
 public:
   double get_date() const { return date_; }
 
-
   Timer(double date, xbt::Task<void()>&& callback) : date_(date), callback(std::move(callback)) {}
 
   void remove();
 
-  template <class F> static inline std::shared_ptr<Timer> set(double date, F callback)
+  template <class F> static inline Timer* set(double date, F callback)
   {
     return set(date, xbt::Task<void()>(std::move(callback)));
   }
 
-  static std::shared_ptr<Timer> set(double date, xbt::Task<void()>&& callback);
+  static Timer* set(double date, xbt::Task<void()>&& callback);
   static double next() { return kernel_timers().empty() ? -1.0 : kernel_timers().top().first; }
 
   /** Handle any pending timer. Returns if something was actually run. */
   static bool execute_all();
 };
 
-} // namespace timer
-} // namespace kernel
-} // namespace simgrid
+} // namespace simgrid::kernel::timer
 
 #endif /* SRC_KERNEL_TIMER_TIMER_HPP_ */