zoukankan      html  css  js  c++  java
  • Zookeeper 一种简单的原子操作机制:

    Zookeeper 一种简单的原子操作机制:

    //zoo_get()方法: int zoo_get(zhandle_t * zh, const char *path, int watch,

    //                   char *buffer, int *buffer_len, struct Stat *stat);

    //zh:连接句柄, path:文件路径, watch: , buffer:获得的数据, stat:状态信//息(比较有用的如:version信息)

    char tmpData[MAXNODENAMELENS];

    uint32_t tmpDataSize = MAXNODENAMELENS - 1;

    rc = zoo_get(zh, nodeName, 1, tmpData, &tmpDataSize, &stat);

    sdsfree(nodeName);

    if  (rc < 0) {

    return rc;

    }

    tmpData[tmpDataSize] = '';

    char *stop;

    uint32_t expectGroupID = strtol(tmpData, &stop, 10);

    if (expectGroupID != groupID_src)

    {

    SlogWrite(LL_FATAL, "ChangeBlockUtil:expectGroupID!=groupID_src.[expectGroupID=%d]", expectGroupID);

    return -1;

    }

    // optimize: use version set

    uint32_t version = stat.version;

    sds data = sdscatprintf(sdsempty(), "%d", groupID_dst);

    SlogWrite(LL_DEBUG, "Set %s value %s.", nodeName, data);

    rc = zoo_set(zh, nodeName, data, sdslen(data), version);

    sdsfree(nodeName);

    sdsfree(data);

    if (rc < 0)

    {

    SlogWrite(LL_FATAL, "ChangeBlockUtil: fail to zoo_set with version=%d", version);

    return rc;

    }

  • 相关阅读:
    图像修补
    图像的矩
    使用多边形将轮廓包围
    寻找物体的凸包
    查找并绘制轮廓
    重映射
    霍夫变换
    边缘检测
    第二周神经网络基础
    第一周:深度学习引言(Introduction to Deep Learning)
  • 原文地址:https://www.cnblogs.com/candycloud/p/3669231.html
Copyright © 2011-2022 走看看