summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJose Bollo <jose.bollo@iot.bzh>2019-10-23 12:19:29 +0200
committerJose Bollo <jose.bollo@iot.bzh>2019-10-23 12:19:29 +0200
commit63c147739eec0322981ee9a5541786288d57bbce (patch)
tree36e7475e61038121ed1b918e97bd82353a10d2ba
parente8785080f288c7f9cee3f1b8f6c4a44e2defae66 (diff)
cynagora: Remove use of pending
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
-rw-r--r--src/cynagora.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/cynagora.c b/src/cynagora.c
index 466592d..a95789e 100644
--- a/src/cynagora.c
+++ b/src/cynagora.c
@@ -48,6 +48,8 @@
#define MIN_CACHE_SIZE 400
#define CACHESIZE(x) ((x) >= MIN_CACHE_SIZE ? (x) : (x) ? MIN_CACHE_SIZE : 0)
+static const char syncid[] = "{sync}";
+
typedef struct asreq asreq_t;
typedef struct ascb ascb_t;
typedef struct agent agent_t;
@@ -106,9 +108,6 @@ struct cynagora
/** file descriptor of the socket */
int fd;
- /** count of pending requests */
- int pending;
-
/** synchronous lock */
bool synclock;
@@ -310,7 +309,6 @@ putxkv(
/* send now */
rc = send_reply(cynagora, fields, nf);
- cynagora->pending += !rc; /* one more pending if no error */
return rc;
}
@@ -367,7 +365,6 @@ get_reply(
rc = 0;
} else {
if (0 != strcmp(cynagora->reply.fields[0], _item_)) {
- cynagora->pending--;
if (strcmp(first, _done_) && strcmp(first, _error_)) {
if (async_reply_process(cynagora, rc))
rc = 0;
@@ -497,7 +494,7 @@ status_check(
*/
static
int
-wait_pending_reply(
+wait_any_reply(
cynagora_t *cynagora
) {
int rc;
@@ -505,7 +502,7 @@ wait_pending_reply(
rc = wait_reply(cynagora, true);
if (rc < 0)
return rc;
- if (rc > 0 && cynagora->pending == 0)
+ if (rc > 0)
return rc;
}
}
@@ -523,7 +520,7 @@ int
wait_done(
cynagora_t *cynagora
) {
- int rc = wait_pending_reply(cynagora);
+ int rc = wait_any_reply(cynagora);
if (rc > 0)
rc = status_done(cynagora);
return rc;
@@ -593,7 +590,6 @@ connection(
agent_t *agent;
/* init the client */
- cynagora->pending = 0;
cynagora->reply.count = -1;
prot_reset(cynagora->prot);
cynagora->fd = socket_open(cynagora->socketspec, 0);
@@ -603,7 +599,7 @@ connection(
/* negociate the protocol */
rc = putxkv(cynagora, _cynagora_, "1", 0, 0);
if (rc >= 0) {
- rc = wait_pending_reply(cynagora);
+ rc = wait_any_reply(cynagora);
if (rc >= 0) {
rc = -EPROTO;
if (cynagora->reply.count >= 2
@@ -688,10 +684,10 @@ check_or_test(
}
/* send the request */
- rc = putxkv(cynagora, action, "{sync}", key, 0);
+ rc = putxkv(cynagora, action, syncid, key, 0);
if (rc >= 0) {
/* get the response */
- rc = wait_pending_reply(cynagora);
+ rc = wait_any_reply(cynagora);
if (rc >= 0) {
rc = status_check(cynagora, rc, &expire);
if (rc >= 0 && action == _check_)