-# $Id: GNUmakefile,v 1.4.2.1 2005/11/16 01:00:58 mmondor Exp $
+# $Id: GNUmakefile,v 1.4.2.2 2005/11/17 07:24:30 mmondor Exp $
MMLIBS := $(addprefix ../mmlib/,mmarch.o mmfd.o mmhash.o mmlimitrate.o \
mmlog.o mmpath.o mmpool.o mmreadcfg.o mmserver.o mmstat.o \
OBJS := src/mmftpd.o
-CFLAGS += -Wall -DDEBUG -g
+CFLAGS += -Wall -DNODETACH -DDEBUG -g
all: src/mmftpd
-/* $Id: mmftpd.c,v 1.66.2.1 2005/11/16 01:00:58 mmondor Exp $ */
+/* $Id: mmftpd.c,v 1.66.2.2 2005/11/17 07:24:30 mmondor Exp $ */
/*
* Copyright (C) 2001-2004, Matthew Mondor
MMCOPYRIGHT("@(#) Copyright (c) 2001-2004\n\
\tMatthew Mondor. All rights reserved.\n");
-MMRCSID("$Id: mmftpd.c,v 1.66.2.1 2005/11/16 01:00:58 mmondor Exp $");
+MMRCSID("$Id: mmftpd.c,v 1.66.2.2 2005/11/17 07:24:30 mmondor Exp $");
static pthread_attr_t tthreadattr;
/* List of logged in users and optionally current home directory size */
-static pthread_mutex_t lusers_lock;
+static pthread_mutex_t lusers_lock = PTHREAD_MUTEX_INITIALIZER;
static pool_t lusers_pool;
static hashtable_t lusers_table;
/* This is used so that clientenv structures be allocated/freed fast */
-static pthread_mutex_t clenvs_lock;
+static pthread_mutex_t clenvs_lock = PTHREAD_MUTEX_INITIALIZER;
static pool_t clenvs_pool;
static pool_t fifos_pool;
/* Pool used to optimize creating/destroying mmfd mutexes */
-static pthread_mutex_t mutexes_lock;
+static pthread_mutex_t mutexes_lock = PTHREAD_MUTEX_INITIALIZER;
static pool_t mutexes_pool;
/* Used for the longer-term directory size cache */
-static pthread_mutex_t quota_lock;
+static pthread_mutex_t quota_lock = PTHREAD_MUTEX_INITIALIZER;
static pool_t quota_pool;
static hashtable_t quota_table;
*/
async_init_pthread();
- pthread_mutex_init(&lusers_lock, NULL);
- pthread_mutex_init(&clenvs_lock, NULL);
- pthread_mutex_init(&mutexes_lock, NULL);
- pthread_mutex_init("a_lock, NULL);
-
srandom(getpid() + time(NULL));
/* We use those for our transfer ASYNC thread, joinable because when we