mirror of https://github.com/yandex/odyssey.git
odissey: sketch basic cancel details
This commit is contained in:
parent
e0a07477c0
commit
50335a8610
|
@ -54,6 +54,9 @@ int od_beclose(odserver_t *server)
|
||||||
ft_close(server->io);
|
ft_close(server->io);
|
||||||
server->io = NULL;
|
server->io = NULL;
|
||||||
}
|
}
|
||||||
|
server->is_transaction = 0;
|
||||||
|
server->is_ready = 0;
|
||||||
|
server->idle_time = 0;
|
||||||
od_serverfree(server);
|
od_serverfree(server);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -255,6 +258,12 @@ int od_bereset(odserver_t *server)
|
||||||
od_serverpool_set(&route->server_pool, server,
|
od_serverpool_set(&route->server_pool, server,
|
||||||
OD_SRESET);
|
OD_SRESET);
|
||||||
|
|
||||||
|
if (! server->is_ready) {
|
||||||
|
/* connect to server */
|
||||||
|
/* send cancel and disconnect */
|
||||||
|
/* wait for ready */
|
||||||
|
}
|
||||||
|
|
||||||
/* send rollback in case if server has an active
|
/* send rollback in case if server has an active
|
||||||
* transaction running */
|
* transaction running */
|
||||||
if (server->is_transaction) {
|
if (server->is_transaction) {
|
||||||
|
|
|
@ -167,6 +167,10 @@ void od_router(void *arg)
|
||||||
if (client->startup.is_cancel) {
|
if (client->startup.is_cancel) {
|
||||||
od_debug(&pooler->od->log, "C: cancel request");
|
od_debug(&pooler->od->log, "C: cancel request");
|
||||||
od_feclose(client);
|
od_feclose(client);
|
||||||
|
/* match server by client key */
|
||||||
|
/* get real key */
|
||||||
|
/* connect to server */
|
||||||
|
/* send cancel and disconnect */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* client auth */
|
/* client auth */
|
||||||
|
|
Loading…
Reference in New Issue