Lines Matching defs:process

18 #include "restrict-process-size.h"
27 #include "service-process-notify.h"
28 #include "service-process.h"
213 on config process */
271 static void service_process_status_timeout(struct service_process *process)
273 service_error(process->service,
275 "seconds, killing the process",
277 if (kill(process->pid, SIGKILL) < 0 && errno != ESRCH) {
278 service_error(process->service, "kill(%s, SIGKILL) failed: %m",
279 dec2str(process->pid));
281 timeout_remove(&process->to_status);
287 struct service_process *process;
343 process = i_new(struct service_process, 1);
344 process->service = service;
345 process->refcount = 1;
346 process->pid = pid;
347 process->uid = uid;
349 process->to_status =
351 service_process_status_timeout, process);
354 process->available_count = service->client_limit;
357 DLLIST_PREPEND(&service->processes, process);
360 hash_table_insert(service_pids, POINTER_CAST(process->pid), process);
363 service_anvil_process_created(process);
364 return process;
367 void service_process_destroy(struct service_process *process)
369 struct service *service = process->service;
372 DLLIST_REMOVE(&service->processes, process);
373 hash_table_remove(service_pids, POINTER_CAST(process->pid));
375 if (process->available_count > 0)
380 timeout_remove(&process->to_status);
381 timeout_remove(&process->to_idle);
383 service_process_notify_add(service->list->log_byes, process);
385 process->destroyed = TRUE;
386 service_process_unref(process);
395 void service_process_ref(struct service_process *process)
397 i_assert(process->refcount > 0);
399 process->refcount++;
402 void service_process_unref(struct service_process *process)
404 i_assert(process->refcount > 0);
406 if (--process->refcount > 0)
409 i_assert(process->destroyed);
410 i_free(process);
499 service_process_get_status_error(string_t *str, struct service_process *process,
502 struct service *service = process->service;
508 dec2str(process->pid));
534 static void service_process_log(struct service_process *process,
539 if (process->service->log_fd[1] == -1) {
544 /* log it via the log process in charge of handling
545 this process's logging */
547 process->service->log_process_internal_fd,
548 dec2str(process->pid),
550 if (write(process->service->list->master_log_fd[1],
552 i_error("write(log process) failed: %m");
557 void service_process_log_status_error(struct service_process *process,
568 service_process_get_status_error(str, process, status,
571 service_process_log(process, default_fatal, str_c(str));