使用g++编译、运行libuv的demo错误解决
我们通过例子来讲述监视器的使用. 例子中空转监视器回调函数被不断地重复调用, 通过例子我们也可以了解到:
由于设置了监视器, 所以调用 uv_run() 是程序会阻塞, 空转监视器将会在计数器达到设定的值时停止(监视), uv_run() 会退出因为此时程序中没有活动的监视器了.
测试代码如下
1 #include <stdio.h> 2 #include <uv.h> 3 4 int64_t counter = 0; 5 6 static void wait_for_a_while(uv_idle_t* handle) { 7 counter++; 8 9 if (counter >= 10e6) 10 uv_idle_stop(handle); 11 } 12 13 int main() { 14 uv_idle_t idler; 15 uv_idle_init(uv_default_loop(), &idler); 16 uv_idle_start(&idler, wait_for_a_while); 17 18 printf("Idling...\n"); 19 uv_run(uv_default_loop(), UV_RUN_DEFAULT); 20 21 return 0; 22 }