Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/fibril_synch.c

    r2654afb r9a99aa5  
    629629}
    630630
     631/** Delay fibril execution for the specified number of microseconds
     632 *
     633 * @param usec Number of microseconds to sleep
     634 */
     635void fibril_usleep(useconds_t usec)
     636{
     637        fibril_condvar_t cv;
     638        fibril_mutex_t lock;
     639
     640        fibril_condvar_initialize(&cv);
     641        fibril_mutex_initialize(&lock);
     642        fibril_mutex_lock(&lock);
     643        fibril_condvar_wait_timeout(&cv, &lock, usec);
     644        fibril_mutex_unlock(&lock);
     645}
     646
     647/** Delay fibril execution for the specified number of seconds
     648 *
     649 * @param sec Number of seconds to sleep
     650 */
     651void fibril_sleep(unsigned int sec)
     652{
     653        /*
     654         * Sleep in 1000 second steps to support
     655         * full argument range
     656         */
     657
     658        while (sec > 0) {
     659                unsigned int period = (sec > 1000) ? 1000 : sec;
     660
     661                fibril_usleep(period * 1000000);
     662                sec -= period;
     663        }
     664}
     665
     666
    631667/** @}
    632668 */
Note: See TracChangeset for help on using the changeset viewer.