Как спать нить APR? - PullRequest
2 голосов
/ 02 мая 2011

Я использую библиотеку APR для создания переносимой многопоточной программы на C ++.Проблема в том, что мне нужно усыпить поток, когда он не нужен, но в руководстве нет функции, упомянутой в этом.

Теперь у вас есть способ, как спать поток APR без необходимостииспользовать родные системные функции?Я хотел бы избежать любого кода конкретной ОС.Спасибо.

Ответы [ 2 ]

4 голосов
/ 02 мая 2011

Если вы просто хотите передать процессор другому потоку, вы можете использовать:

void apr_thread_yield(void);

В противном случае вы можете использовать:

apr_status_t apr_thread_cond_timedwait(
        apr_thread_cond_t *     cond,
        apr_thread_mutex_t *    mutex,
        apr_interval_time_t     timeout  
    );

или

apr_status_t apr_thread_cond_wait(
        apr_thread_cond_t *     cond,
        apr_thread_mutex_t *    mutex
    );

См. здесь .

1 голос
/ 12 февраля 2013

... и в APR тоже есть функция сна, в "apr_time.h":

void apr_sleep (apr_interval_time_t t)

Ссылка: sleep

...