void update_ticks(int gno) { update_ticks_items(gno); update_axis_items(gno); update_axislabel_items(gno); update_ticklabel_items(gno); update_tickmark_items(gno); update_axisbar_items(gno); load_special(gno, curaxis); update_special_items(gno); }
int main() { char *str; int i = 0, fd = -1, msqid = -1; int sp_retv, sv_retv; srandom(time(NULL)); chdir(MY_BBS_HOME); mkdir(SP_DIR, 0770); umask(027); msqid = initAILogMSQ(); if (msqid < 0) return -1; #if !defined(DEBUG_MODE) if (fork()) return 0; setsid(); if (fork()) return 0; close(0); close(1); close(2); #endif signal(SIGHUP, sig_hup); signal(SIGTERM, sig_term); signal(SIGCHLD, sig_chld); fd = open(MY_BBS_HOME "/reclog/AId.lock", O_CREAT | O_RDONLY, 0660); if (flock(fd, LOCK_EX | LOCK_NB) < 0) return -1; #ifdef DEBUG_MODE printf("msq started...\n"); #endif while (1) { if(i % 128 == 0) { sv_retv = load_server(); sp_retv = load_special(); if(fork() == 0) { close(fd); update_special_html(); if(sp_retv == 1) return send_special(); else return MAX_SERVER_NUM; } } while ((str = rcvlog(msqid, 1))) { strsncpy(queue[qlen++], str, 512); #ifdef DEBUG_MODE printf("recved@%ld |%s|\n", time(NULL), str); if(qlen < 1) #else if(qlen < 16) #endif continue; if(num_server == 0) { if(qlen > MAX_QLEN - 1) qlen--;//drop msg break; } if(fork() == 0) { close(fd); return require_ai(i%num_server); } qlen=0; break; } i++; sleep(5); } }
static void do_special_proc(Widget w, XtPointer client_data, XtPointer call_data) { Widget wlabel, rc, rc3, sw; int i, x, y; char buf[10]; set_wait_cursor(); if (special_frame == NULL) { char *label1[2]; label1[0] = "Accept"; label1[1] = "Close"; XmGetPos(app_shell, 0, &x, &y); special_frame = XmCreateDialogShell(app_shell, "Specified ticks/ticklabels", NULL, 0); handle_close(special_frame); XtVaSetValues(special_frame, XmNx, x, XmNy, y, NULL); special_panel = XmCreateForm(special_frame, "special_form", NULL, 0); rc = XmCreateRowColumn(special_panel, "rc", NULL, 0); specticks = XtVaCreateManagedWidget("Use special tick locations", xmToggleButtonWidgetClass, rc, NULL); specticklabels = XtVaCreateManagedWidget("Use special tick labels", xmToggleButtonWidgetClass, rc, NULL); nspec = CreateTextItem2(rc, 10, "# of user ticks/labels to use:"); wlabel = XtVaCreateManagedWidget("Tick location - Label:", xmLabelWidgetClass, rc, NULL); XtManageChild(rc); XtVaSetValues(rc, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, NULL); sw = XtVaCreateManagedWidget("sw", xmScrolledWindowWidgetClass, special_panel, XmNscrollingPolicy, XmAUTOMATIC, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, rc, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); rc = XmCreateRowColumn(sw, "rc", NULL, 0); XtVaSetValues(sw, XmNworkWindow, rc, NULL); for (i = 0; i < MAX_TICK_LABELS; i++) { rc3 = XmCreateRowColumn(rc, "rc3", NULL, 0); XtVaSetValues(rc3, XmNorientation, XmHORIZONTAL, NULL); sprintf(buf, "%2d", i + 1); specnum[i] = XtVaCreateManagedWidget(buf, xmLabelWidgetClass, rc3, NULL); specloc[i] = XtVaCreateManagedWidget("tickmark", xmTextFieldWidgetClass, rc3, XmNcolumns, 10, NULL); speclabel[i] = XtVaCreateManagedWidget("ticklabel", xmTextFieldWidgetClass, rc3, XmNcolumns, 35, NULL); XtManageChild(rc3); } XtManageChild(rc); XtManageChild(sw); rc = XmCreateRowColumn(special_panel, "rc", NULL, 0); XtVaSetValues(rc, XmNorientation, XmHORIZONTAL, NULL); CreateCommandButtons(rc, 2, but1, label1); XtAddCallback(but1[0], XmNactivateCallback, (XtCallbackProc) accept_special_proc, (XtPointer) 0); XtAddCallback(but1[1], XmNactivateCallback, (XtCallbackProc) destroy_dialog, (XtPointer) special_frame); XtManageChild(rc); XtVaSetValues(rc, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, NULL); XtVaSetValues(sw, XmNbottomAttachment, XmATTACH_WIDGET, XmNbottomWidget, rc, NULL); load_special(cg, curaxis); XtManageChild(special_panel); } XtRaise(special_frame); update_special_items(cg); unset_wait_cursor(); }