[Asterisk-Dev] busy-wait loops in pbx_dundi

SteveK stevek at stevek.com
Fri Jun 10 04:59:40 MST 2005


On Jun 10, 2005, at 4:53 AM, Luigi Rizzo wrote:

> while applying the timeval changes, i noticed that pbx_dundi.c
> is full of busy-wait loops of the form
>
>     while (!some_condition) {
>         usleep(1);
>     }
>
> could someone comment how one avoids that this code eats 100% of the
> CPU and how high the risk is ?

The answer to that seems pretty obvious, Luigi.

Assuming that usleep works correctly (it more or less does), and the  
test for some condition takes less than a microsecond to execute (it  
surely does), then this loop won't use more than 0.1% of your CPU.

-SteveK




More information about the asterisk-dev mailing list