LCOV - code coverage report
Current view: top level - include/boost/corosio/detail - scheduler.hpp (source / functions) Coverage Total Hit
Test: coverage_remapped.info Lines: 100.0 % 1 1
Test Date: 2026-02-12 20:11:43 Functions: 50.0 % 2 1

            Line data    Source code
       1              : //
       2              : // Copyright (c) 2025 Vinnie Falco (vinnie.falco@gmail.com)
       3              : // Copyright (c) 2026 Steve Gerbino
       4              : //
       5              : // Distributed under the Boost Software License, Version 1.0. (See accompanying
       6              : // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       7              : //
       8              : // Official repository: https://github.com/cppalliance/corosio
       9              : //
      10              : 
      11              : #ifndef BOOST_COROSIO_DETAIL_SCHEDULER_HPP
      12              : #define BOOST_COROSIO_DETAIL_SCHEDULER_HPP
      13              : 
      14              : #include <boost/corosio/detail/config.hpp>
      15              : #include <coroutine>
      16              : 
      17              : #include <cstddef>
      18              : 
      19              : namespace boost::corosio::detail {
      20              : 
      21              : class scheduler_op;
      22              : 
      23              : struct scheduler
      24              : {
      25          336 :     virtual ~scheduler() = default;
      26              :     virtual void post(std::coroutine_handle<>) const = 0;
      27              :     virtual void post(scheduler_op*) const = 0;
      28              : 
      29              :     /** Notify scheduler of pending work (for executor use).
      30              :         When the count reaches zero, the scheduler stops.
      31              :     */
      32              :     virtual void on_work_started() noexcept = 0;
      33              :     virtual void on_work_finished() noexcept = 0;
      34              : 
      35              :     /** Notify scheduler of pending I/O work (for services use).
      36              :         Unlike on_work_finished, work_finished does not stop the scheduler
      37              :         when the count reaches zero - it only wakes blocked threads.
      38              :     */
      39              :     virtual void work_started() const noexcept = 0;
      40              :     virtual void work_finished() const noexcept = 0;
      41              : 
      42              :     virtual bool running_in_this_thread() const noexcept = 0;
      43              :     virtual void stop() = 0;
      44              :     virtual bool stopped() const noexcept = 0;
      45              :     virtual void restart() = 0;
      46              :     virtual std::size_t run() = 0;
      47              :     virtual std::size_t run_one() = 0;
      48              :     virtual std::size_t wait_one(long usec) = 0;
      49              :     virtual std::size_t poll() = 0;
      50              :     virtual std::size_t poll_one() = 0;
      51              : };
      52              : 
      53              : } // namespace boost::corosio::detail
      54              : 
      55              : #endif
        

Generated by: LCOV version 2.3