}  if (!DebugMode) { BecomeOrphan(); BecomeDaemon();
main(argc, argv)    int         argc;    char      **argv;{    int         i;    argcGlobal = argc;    argvGlobal = argv;    configfilename = DEFAULT_CONFIG_FILE;    /* init stuff */    ProcessCmdLine(argc, argv);    InitErrors();    /*     * do this first thing, to get any options that only take effect at     * startup time.  it is erad again each time the server resets     */    if (ReadConfigFile(configfilename) != FSSuccess) {	ErrorF("fatal: couldn't read config file\n");	exit(1);    }    while (1) {	serverGeneration++;	OsInit();	if (serverGeneration == 1) {	    /* do first time init */	    serverCache = CacheInit(SERVER_CACHE_SIZE);	    CreateSockets(OldListenCount, OldListen);	    InitProcVectors();	    clients = (ClientPtr *) fsalloc(MAXCLIENTS * sizeof(ClientPtr));	    if (!clients)		FatalError("couldn't create client array\n");	    for (i = MINCLIENT; i < MAXCLIENTS; i++)		clients[i] = NullClient;	    /* make serverClient */	    serverClient = (ClientPtr) fsalloc(sizeof(ClientRec));	    if (!serverClient)		FatalError("couldn't create server client\n");	}	ResetSockets();	/* init per-cycle stuff */	InitClient(serverClient, SERVER_CLIENT, (pointer) 0);	clients[SERVER_CLIENT] = serverClient;	currentMaxClients = MINCLIENT;	currentClient = serverClient;	if (!InitClientResources(serverClient))	    FatalError("couldn't init server resources\n");	InitExtensions();	InitAtoms();	InitFonts();	SetConfigValues();	if (!create_connection_block())	    FatalError("couldn't create connection block\n");#ifdef DEBUG	fprintf(stderr, "Entering Dispatch loop\n");#endif	Dispatch();#ifdef DEBUG	fprintf(stderr, "Leaving Dispatch loop\n");#endif	/* clean up per-cycle stuff */	CacheReset();	CloseDownExtensions();	if ((dispatchException & DE_TERMINATE) || drone_server)	    break;	fsfree(ConnectionInfo);	/* note that we're parsing it again, for each time the server resets */	if (ReadConfigFile(configfilename) != FSSuccess)	    FatalError("couldn't read config file\n");    }    CloseSockets();    CloseErrors();    exit(0);}