等待超时实现简单方法

来源:互联网 发布:日系文艺淘宝店铺推荐 编辑:程序博客网 时间:2024/06/03 19:52
#include <stdio.h>#include <sys/types.h> #include <sys/stat.h>#include <fcntl.h>#define MAX_PATH                2048#define TMP_RUN_PATH                "/tmp/run"#define WAIT_TIMEOUT_MAX            10000U  //10 seconds#define TEST_NAME                   "test_name"//parameter name#define RET_FALSE                   0#define RET_TRUE                    1bool i_test_wait(const SVPChar* name, SVPUint32 timeout){    bool service_ready = RET_FALSE;    char service_registry[MAX_PATH] = {0};    snprintf(service_registry, MAX_PATH, "%s/service/registry/%s", TMP_RUN_PATH, name);    if (timeout > WAIT_TIMEOUT_MAX)        timeout = WAIT_TIMEOUT_MAX;    int try_time = timeout / 50;    while (try_time--)    {        if (SVPFile::FileExist(service_registry) == RET_FALSE)        {            sleep(50);            continue;        }        service_ready = RET_TRUE;        break;    }    return service_ready;}    /************************************    *   源码:access(pFilePath, F_OK);    *   int m_hFile = -1;    *   m_hFile = open(pFilePath ,O_CREAT);    *   close(m_hFile);    *   remove(filename);    *************************************/
原创粉丝点击