/* * Copyright (c) 2015, NORDUnet A/S. * See LICENSE for licensing information. */ #include #include #include #include #include #include #include #include #include "permdb.h" #include "erlport.h" static void __attribute__((noreturn)) usage() { errx(1, "usage: permdbport [nolock]"); } int main(int argc, char *argv[]) { if (argc < 2) { usage(); } const char *store = argv[1]; int lock = 1; for (int i = 2; i < argc; i++) { const char *arg = argv[i]; if (strcmp(arg, "nolock") == 0) { lock = 0; } else { usage(); } } permdb_object *state = permdb_alloc(store, lock); if (state == NULL) { fprintf(stderr, "permdbport failed to start\n"); write_reply(NULL, 0, 4); return 1; } portloop(state); struct rusage rusage; getrusage(RUSAGE_SELF, &rusage); fprintf(stderr, "permdbport user %ld.%d sys %ld.%d maxrss %ld M\n", rusage.ru_utime.tv_sec, (int)rusage.ru_utime.tv_usec, rusage.ru_stime.tv_sec, (int)rusage.ru_utime.tv_usec, rusage.ru_maxrss/1024); return 0; } /* Local Variables: */ /* c-file-style: "BSD" */ /* End: */