Ejemplo n.º 1
0
int mongo_util_pool_refresh(mongo_server *server, time_t timeout TSRMLS_DC) {
  if (server->connected) {
    return SUCCESS;
  }

  // make sure we're disconnected before reconnecting
  mongo_util_pool_close(server, CHECK_CONNS TSRMLS_CC);

  // pass the reduced timeout variable we had set
  stack_monitor *monitor;
  if ((monitor = mongo_util_pool__get_monitor(server TSRMLS_CC)) == 0) {
      return FAILURE;
  }
  timeout = (monitor->timeout > 0) ? monitor->timeout : MONGO_RS_TIMEOUT;

  if (mongo_util_pool_init(server, timeout TSRMLS_CC) == FAILURE) {
    return FAILURE;
  }

  if (mongo_util_pool_get(server, 0 TSRMLS_CC) == FAILURE) {
    return FAILURE;
  }

  // if we get here, we successfully reconnected
  return SUCCESS;
}
Ejemplo n.º 2
0
Archivo: pool.c Proyecto: 117311730/PHP
int mongo_util_pool_init(mongo_server *server, time_t timeout TSRMLS_DC) {
  stack_monitor *monitor;

  if ((monitor = mongo_util_pool__get_monitor(server TSRMLS_CC)) == 0) {
    return FAILURE;
  }
  if (timeout) {
    monitor->timeout = timeout;
  }

  // TODO: do something to num.remaining

  // TODO: initialize pool to a certain size?
  return SUCCESS;
}