Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class interprocess_condition_any

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Indexes and Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class interprocess_condition_any

boost::interprocess::interprocess_condition_any

Synopsis

// In header: <boost/interprocess/sync/interprocess_condition_any.hpp>

class interprocess_condition_any {
public:
  // construct/copy/destruct
  interprocess_condition_any();
  ~interprocess_condition_any();
  // public member functions
  void notify_one();
  void notify_all();
  template<typename L> void wait(L &);
  template<typename L, typename Pr> void wait(L &, Pr);
  template<typename L> bool timed_wait(L &, const boost::posix_time::ptime &);
  template<typename L, typename Pr> 
    bool timed_wait(L &, const boost::posix_time::ptime &, Pr);
};

Description

Этот класс представляет собой переменную состояния, которая может быть размещена в общей памяти или картированных файлах памяти.

interprocess_condition_anyкласс является обобщениемinterprocess_condition. Тогда какМежпроцессное условиеработает только на замках с mutex_type ==interprocess_mutexinterprocess_condition_anyможет работать на любом пользовательском блокировщике, который соответствует требованиям BasicLockable (функции блокировки/разблокировки).

В отличие от std::condition_variable_any в C++11, не безопасно вызывать деструктор, если все потоки были только уведомлены. Необходимо, чтобы они вышли из своих соответствующих функций ожидания.

interprocess_condition_any public construct/copy/destruct

  1. <
    interprocess_condition_any();
    >Построение<interprocess_condition_any>. Погрешность<interprocess_exception>.
  2. <
    ~interprocess_condition_any();
    >

    Уничтожает эти освобождающие системные ресурсы.

interprocess_condition_any public member functions

  1. <
    voidnotify_one();
    >

    Если есть нить, ожидающая этого, измените состояние этой нити на готовое. В противном случае эффекта нет.

  2. <
    voidnotify_all();
    >

    Измените состояние всех нитей, ожидающих *это готово. Если нет потоков ожидания, уведомить_all() не имеет никакого эффекта.

  3. <
    template<typenameL>voidwait(L&lock);
    >

    Отпускает замок на объекте<interprocess_mutex>, связанном с блокировкой, блокирует текущую нить исполнения до тех пор, пока не будет подготовлен вызов к этому->notify_one() или этому->notify_all(), а затем вновь приобретает замок.

  4. <
    template<typenameL,typenamePr>voidwait(L&lock,Prpred);
    >

    То же, что: пока (!pred()) ждать (lock)

  5. <
    template<typenameL>
     booltimed_wait(L&lock,constboost::posix_time::ptime&abs_time);
    >

    Отпускает замок на объекте<interprocess_mutex>, связанном с блокировкой, блокирует текущую нить исполнения до тех пор, пока не будет подготовлен вызов к этому->notify_one() или этому->notify_all(), или пока не будет достигнуто время abs_time, а затем вновь приобретает замок. Возврат: ложный, если время abs_time достигнуто, в противном случае истинно.

  6. <
    template<typenameL,typenamePr>
     booltimed_wait(L&lock,constboost::posix_time::ptime&abs_time,
                     Prpred);
    >

    То же, что: в то время как (!pred()) {, если (!timed_wait(lock, abs_time)) возвратить pred(); } возвратить истинно;


PrevUpHomeNext

Статья Class interprocess_condition_any раздела The Boost C++ Libraries BoostBook Documentation Subset Indexes and Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Indexes and Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:20:13/0.0088281631469727/1