Changeset 3357 for trunk/src/kmk/main.c


Ignore:
Timestamp:
Jun 5, 2020, 4:49:14 PM (5 years ago)
Author:
bird
Message:

kmk,winchildren.c: Some adjustments to the job object thing, adding a 'login' mode (default) to allow two independent kmk instances to share an mkpdbsrv.exe instance. Split the 'nokill' out of the mode and into a separate option.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/main.c

    r3353 r3357  
    424424/* --job-object-name=name */
    425425char *win_job_object_name = NULL;
     426
     427/** --job-object-no-kill.   */
     428int win_job_object_no_kill = 0;
    426429#endif
    427430
     
    563566    N_("\
    564567  --job-object=mode           Windows job object mode:\n\
    565                                 root-kill   = Root make instance only, kill all\n\
    566                                               process when root exits. (def)\n\
    567                                 root-nokill = Root make instance only.\n\
    568                                               No killing.\n\
    569                                 each-kill   = Each make instances, kill all\n\
    570                                               children when an instance exits.\n\
    571                                 each-nokill = Each make instances, no killing.\n\
    572                                 none        = No job objects.\n"),
     568                                login = Per login session (default).\n\
     569                                root  = Root make instance only.\n\
     570                                each  = Each make instances.\n\
     571                                none  = No job objects.\n"),
    573572    N_("\
    574573  --job-object-name=name      Name of windows job object to open or create.\n\
    575                               The default name is 'kmk-job-obj-<date>Z<pid>'.\n"),
     574                              The default name depends on the level.\n"),
     575    N_("\
     576  --job-object-no-kill        Do not kill orphaned child processes when done.\n"),
    576577#endif
    577578    NULL
     
    664665#if defined (WINDOWS32) && defined (CONFIG_NEW_WIN_CHILDREN)
    665666    { CHAR_MAX+58, string, &win_job_object_mode, 1, 1, 1, 0, 0, "job-object" },
    666     { CHAR_MAX+59, string, &win_job_object_name,  1, 1, 1, 0, 0,
     667    { CHAR_MAX+59, string, &win_job_object_name, 1, 1, 1, 0, 0,
    667668      "job-object-name" },
     669    { CHAR_MAX+60, flag, &win_job_object_no_kill, 1, 1, 1, 0, 0,
     670      "job-object-no-kill" },
    668671#endif
    669672    { 0, 0, 0, 0, 0, 0, 0, 0, 0 }
     
    37603763  /* validate the job object mode value . */
    37613764  if (win_job_object_mode == NULL)
    3762     win_job_object_mode = xstrdup("root-kill");
     3765    win_job_object_mode = xstrdup ("login");
    37633766  else if (   strcmp (win_job_object_mode, "none") != 0
    3764            && strcmp (win_job_object_mode, "root-kill") != 0
    3765            && strcmp (win_job_object_mode, "root-nokill") != 0
    3766            && strcmp (win_job_object_mode, "each-kill") != 0
    3767            && strcmp (win_job_object_mode, "each-nokill") != 0)
     3767           && strcmp (win_job_object_mode, "login") != 0
     3768           && strcmp (win_job_object_mode, "root") != 0
     3769           && strcmp (win_job_object_mode, "each") != 0)
    37683770    OS (fatal, NILF, _("unknown job object mode '%s'"), win_job_object_mode);
    37693771#endif
Note: See TracChangeset for help on using the changeset viewer.