#include "worker-pool.h"
#include "worker-connection.h"
-struct worker_request {
- struct connection *conn;
- struct indexer_request *request;
-};
-
static const struct master_service_settings *set;
static struct indexer_queue *queue;
static struct worker_pool *worker_pool;
static void worker_send_request(struct connection *conn,
struct indexer_request *request)
{
- struct worker_request *wrequest;
-
- wrequest = i_new(struct worker_request, 1);
- wrequest->conn = conn;
- wrequest->request = request;
-
indexer_queue_request_work(request);
- worker_connection_request(conn, request, wrequest);
+ worker_connection_request(conn, request);
}
static void queue_try_send_more(struct indexer_queue *queue)
}
void worker_connection_request(struct connection *conn,
- struct indexer_request *request,
- void *context)
+ struct indexer_request *request)
{
struct worker_connection *worker =
container_of(conn, struct worker_connection, conn);
i_assert(worker_connection_is_connected(conn));
- i_assert(context != NULL);
i_assert(request->index || request->optimize);
if (worker->request_username == NULL)
unsigned int worker_connections_get_process_limit(void);
/* Send a new indexing request for username+mailbox. The status callback is
- called as necessary with the given context. Requests can be queued, but
- only for the same username. */
+ called as necessary. Requests can be queued, but only for the same
+ username. */
void worker_connection_request(struct connection *conn,
- struct indexer_request *request,
- void *context);
+ struct indexer_request *request);
/* Returns username of the currently pending requests,
or NULL if there are none. */
const char *worker_connection_get_username(struct connection *conn);