Print this page
make: unifdef for MAKETOOL and DISTRIBUTED (undefined)

*** 32,51 **** /* * Included files */ #include <alloca.h> /* alloca() */ - #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */ - # include <avo/strings.h> /* AVO_STRDUP() */ - # include <dm/Avo_MToolJobResultMsg.h> - # include <dm/Avo_MToolJobStartMsg.h> - # include <dm/Avo_MToolRsrcInfoMsg.h> - # include <dm/Avo_macro_defs.h> /* AVO_BLOCK_INTERUPTS & AVO_UNBLOCK_INTERUPTS */ - # include <dmthread/Avo_ServerState.h> - # include <rw/pstream.h> - # include <rw/xdrstrea.h> - #endif #include <fcntl.h> #include <mk/defs.h> #include <mksh/i18n.h> /* get_char_semantics_value() */ #include <mksh/macro.h> /* getvar(), expand_value() */ --- 32,41 ----
*** 69,86 **** */ # define LOCALHOST "localhost" #define MAXRULES 100 - #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */ - #define SEND_MTOOL_MSG(cmds) \ - if (send_mtool_msgs) { \ - cmds \ - } - #else #define SEND_MTOOL_MSG(cmds) - #endif // Sleep for .1 seconds between stat()'s const int STAT_RETRY_SLEEP_TIME = 100000; /* --- 59,69 ----
*** 91,105 **** * Static variables */ static char hostName[MAXNAMELEN] = ""; static char userName[MAXNAMELEN] = ""; - #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */ - static FILE *mtool_msgs_fp; - static XDR xdrs; - static int sent_rsrc_info_msg = 0; - #endif static int second_pass = 0; /* * File table of contents --- 74,83 ----
*** 128,145 **** // From read2.cc extern Name normalize_name(register wchar_t *name_string, register int length); - #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */ - static void append_job_result_msg(Avo_MToolJobResultMsg *job_result_msg); - static int pollResults(char *outFn, char *errFn, char *hostNm); - static void pollResultsAction(char *outFn, char *errFn); - static void rxmGetNextResultsBlock(int fd); - static int us_sleep(unsigned int nusecs); - extern "C" void Avo_PollResultsAction_Sigusr1Handler(int foo); - #endif /* * DONE. * * doname_check(target, do_get, implicit, automatic) --- 106,115 ----
*** 1017,1036 **** * the prior dependencies before continuing. */ if (dependencies_running) { break; } - #ifdef DISTRIBUTED - } else if ((!parallel_ok(dependency->name, false)) && - (dependencies_running)) { - /* - * If we can't execute the current dependency in - * parallel, hold off the dependency processing - * to preserve the order of the dependencies. - */ - break; - #endif } else { timestruc_t depe_time = file_doesnt_exist; if (true_target->is_member) { --- 987,996 ----
*** 1842,1855 **** */ Doname execute_serial(Property line) { int child_pid = 0; - #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */ - Avo_MToolJobResultMsg *job_result_msg; - RWCollectable *xdr_msg; - #endif Boolean printed_serial; Doname result = build_ok; Cmd_line rule, cmd_tail, command = NULL; char mbstring[MAXPATHLEN]; int filed; --- 1802,1811 ----
*** 1928,1942 **** if (rule->assign) { result = build_ok; do_assign(rule->command_line, target); } else if (report_dependencies_level == 0) { /* Execute command line. */ - #ifdef DISTRIBUTED - setvar_envvar((Avo_DoJobMsg *)NULL); - #else setvar_envvar(); - #endif result = dosys(rule->command_line, (Boolean) rule->ignore_error, (Boolean) rule->make_refd, /* ds 98.04.23 bug #4085164. make should always show error messages */ false, --- 1884,1894 ----
*** 2036,2169 **** return result; } - #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */ - - /* - * Create and send an Avo_MToolRsrcInfoMsg. - */ - void - send_rsrc_info_msg(int max_jobs, char *hostname, char *username) - { - static int first = 1; - Avo_MToolRsrcInfoMsg *msg; - RWSlistCollectables server_list; - Avo_ServerState *server_state; - RWCollectable *xdr_msg; - - if (!first) { - return; - } - first = 0; - - create_xdrs_ptr(); - - server_state = new Avo_ServerState(max_jobs, hostname, username); - server_list.append(server_state); - msg = new Avo_MToolRsrcInfoMsg(&server_list); - - xdr_msg = (RWCollectable *)msg; - xdr(get_xdrs_ptr(), xdr_msg); - (void) fflush(get_mtool_msgs_fp()); - - delete server_state; - delete msg; - } - - /* - * Create and send an Avo_MToolJobStartMsg. - */ - void - send_job_start_msg(Property line) - { - int cmd_options = 0; - Avo_MToolJobStartMsg *msg; - Cmd_line rule; - Name target = line->body.line.target; - RWCollectable *xdr_msg; - - if (userName[0] == '\0') { - avo_get_user(userName, NULL); - } - if (hostName[0] == '\0') { - strcpy(hostName, avo_hostname()); - } - - msg = new Avo_MToolJobStartMsg(); - msg->setJobId(++job_msg_id); - msg->setTarget(AVO_STRDUP(target->string_mb)); - msg->setHost(AVO_STRDUP(hostName)); - msg->setUser(AVO_STRDUP(userName)); - - for (rule = line->body.line.command_used; - rule != NULL; - rule = rule->next) { - if (posix && (touch || quest) && !rule->always_exec) { - continue; - } - if (vpath_defined) { - rule->command_line = - vpath_translation(rule->command_line); - } - cmd_options = 0; - if (rule->ignore_error || ignore_errors) { - cmd_options |= ignore_mask; - } - if (rule->silent || silent) { - cmd_options |= silent_mask; - } - if (rule->command_line->meta) { - cmd_options |= meta_mask; - } - if (!touch && (rule->command_line->hash.length > 0)) { - msg->appendCmd(new Avo_DmakeCommand(rule->command_line->string_mb, cmd_options)); - } - } - - xdr_msg = (RWCollectable*) msg; - xdr(&xdrs, xdr_msg); - (void) fflush(mtool_msgs_fp); - - /* tolik, 08/39/2002. - I commented out this code because it causes using unallocated memory. - delete msg; - */ - } - - /* - * Append the stdout/err to Avo_MToolJobResultMsg. - */ - static void - append_job_result_msg(Avo_MToolJobResultMsg *job_result_msg) - { - FILE *fp; - char line[MAXPATHLEN]; - char stdout_file2[MAXPATHLEN]; - - if (stdout_file != NULL) { - fp = fopen(stdout_file, "r"); - if (fp == NULL) { - /* Hmmm... what should we do here? */ - warning(catgets(catd, 1, 326, "fopen() of stdout_file failed. Output may be lost")); - return; - } - while (fgets(line, MAXPATHLEN, fp) != NULL) { - if (line[strlen(line) - 1] == '\n') { - line[strlen(line) - 1] = '\0'; - } - job_result_msg->appendOutput(AVO_STRDUP(line)); - } - (void) fclose(fp); - us_sleep(STAT_RETRY_SLEEP_TIME); - } else { - /* Hmmm... stdout_file shouldn't be NULL */ - warning(catgets(catd, 1, 327, "Internal stdout_file variable shouldn't be NULL. Output may be lost")); - } - } - #endif /* TEAMWARE_MAKE_CMN */ /* * vpath_translation(cmd) * * Translates one command line by --- 1988,1997 ----
*** 2791,2808 **** String_rec touch_string; wchar_t buffer[MAXPATHLEN]; Name touch_cmd; Cmd_line rule; - #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */ - Avo_MToolJobResultMsg *job_result_msg; - RWCollectable *xdr_msg; - int child_pid = 0; - wchar_t string[MAXPATHLEN]; - char mbstring[MAXPATHLEN]; - int filed; - #endif SEND_MTOOL_MSG( if (!sent_rsrc_info_msg) { if (userName[0] == '\0') { avo_get_user(userName, NULL); --- 2619,2628 ----
*** 3458,3625 **** } else { return false; } } - #if defined(DISTRIBUTED) || defined(MAKETOOL) /* tolik */ - void - create_xdrs_ptr(void) - { - static int xdrs_init = 0; - - if (!xdrs_init) { - xdrs_init = 1; - mtool_msgs_fp = fdopen(mtool_msgs_fd, "a"); - xdrstdio_create(&xdrs, - mtool_msgs_fp, - XDR_ENCODE); - } - } - - XDR * - get_xdrs_ptr(void) - { - return &xdrs; - } - - FILE * - get_mtool_msgs_fp(void) - { - return mtool_msgs_fp; - } - - int - get_job_msg_id(void) - { - return job_msg_id; - } - - // Continuously poll and show the results of remotely executing a job, - // i.e., output the stdout and stderr files. - - static int - pollResults(char *outFn, char *errFn, char *hostNm) - { - int child; - - child = fork(); - switch (child) { - case -1: - break; - case 0: - enable_interrupt((void (*) (int))SIG_DFL); - (void) sigset(SIGUSR1, Avo_PollResultsAction_Sigusr1Handler); - pollResultsAction(outFn, errFn); - - exit(0); - break; - default: - break; - } - return child; - } - - // This is the PollResultsAction SIGUSR1 handler. - - static bool_t pollResultsActionTimeToFinish = FALSE; - - extern "C" void - Avo_PollResultsAction_Sigusr1Handler(int foo) - { - pollResultsActionTimeToFinish = TRUE; - } - - static void - pollResultsAction(char *outFn, char *errFn) - { - int fd; - time_t file_time = 0; - long file_time_nsec = 0; - struct stat statbuf; - int stat_rc; - - // Keep stat'ing until file exists. - while (((stat_rc = stat(outFn, &statbuf)) != 0) && - (errno == ENOENT) && - !pollResultsActionTimeToFinish) { - us_sleep(STAT_RETRY_SLEEP_TIME); - } - // The previous stat() could be failed due to EINTR - // So one more try is needed - if (stat_rc != 0 && stat(outFn, &statbuf) != 0) { - // stat() failed - warning(NOCATGETS("Internal error: stat(\"%s\", ...) failed: %s\n"), - outFn, strerror(errno)); - exit(1); - } - - if ((fd = open(outFn, O_RDONLY)) < 0 - && (errno != EINTR || (fd = open(outFn, O_RDONLY)) < 0)) { - // open() failed - warning(NOCATGETS("Internal error: open(\"%s\", O_RDONLY) failed: %s\n"), - outFn, strerror(errno)); - exit(1); - } - - while (!pollResultsActionTimeToFinish && stat(outFn, &statbuf) == 0) { - if ((statbuf.st_mtim.tv_sec > file_time) || - ((statbuf.st_mtim.tv_sec == file_time) && - (statbuf.st_mtim.tv_nsec > file_time_nsec)) - ) { - file_time = statbuf.st_mtim.tv_sec; - file_time_nsec = statbuf.st_mtim.tv_nsec; - rxmGetNextResultsBlock(fd); - } - us_sleep(STAT_RETRY_SLEEP_TIME); - } - // Check for the rest of output - rxmGetNextResultsBlock(fd); - - (void) close(fd); - } - - static void - rxmGetNextResultsBlock(int fd) - { - size_t to_read = 8 * 1024; - ssize_t bytes_read; - ssize_t bytes_written; - char results_buf[8 * 1024]; - sigset_t newset; - sigset_t oldset; - - // Read some more from the output/results file. - // Hopefully the kernel managed to prefetch the stuff. - bytes_read = read(fd, results_buf, to_read); - while (bytes_read > 0) { - AVO_BLOCK_INTERUPTS; - bytes_written = write(1, results_buf, bytes_read); - AVO_UNBLOCK_INTERUPTS; - if (bytes_written != bytes_read) { - // write() failed - warning(NOCATGETS("Internal error: write(1, ...) failed: %s\n"), - strerror(errno)); - exit(1); - } - bytes_read = read(fd, results_buf, to_read); - } - } - - // Generic, interruptable microsecond resolution sleep member function. - - static int - us_sleep(unsigned int nusecs) - { - struct pollfd dummy; - int timeout; - - if ((timeout = nusecs/1000) <= 0) { - timeout = 1; - } - return poll(&dummy, 0, timeout); - } - #endif /* TEAMWARE_MAKE_CMN */ // Recursively delete each of the Chain struct on the chain. static void delete_query_chain(Chain ch) --- 3278,3287 ----