version 1.17, 2002/04/11 14:13:37 |
version 1.19, 2003/01/11 12:38:57 |
|
|
/* -*- mode: C; coding: euc-japan -*- */ |
/* -*- mode: C; coding: euc-japan -*- */ |
/* $OpenXM: OpenXM/src/ox_math/serv1.c,v 1.16 2000/12/22 04:06:37 ohara Exp $ */ |
/* $OpenXM: OpenXM/src/ox_math/serv1.c,v 1.18 2002/04/11 19:53:40 ohara Exp $ */ |
|
|
/* |
/* |
Copyright (C) Katsuyoshi OHARA, 2000. |
Copyright (C) Katsuyoshi OHARA, 2000. |
Line 27 static void handler() |
|
Line 27 static void handler() |
|
sigemptyset(&newmask); |
sigemptyset(&newmask); |
sigaddset(&newmask, SIGUSR1); |
sigaddset(&newmask, SIGUSR1); |
sigprocmask(SIG_SETMASK, &newmask, &oldmask); |
sigprocmask(SIG_SETMASK, &newmask, &oldmask); |
fprintf(stderr, "signal received.\n"); |
fprintf(ox_stderr, "signal received.\n"); |
exchange_ox_sync_ball(stack_oxfp); |
exchange_ox_sync_ball(stack_oxfp); |
sigprocmask(SIG_SETMASK, &oldmask, NULL); /* unmasked. */ |
sigprocmask(SIG_SETMASK, &oldmask, NULL); /* unmasked. */ |
} |
} |
|
|
{ |
{ |
OXFILE* sv; |
OXFILE* sv; |
|
|
|
ox_stderr_init(NULL); |
ml_init(); |
ml_init(); |
mathcap_init(VERSION, ID_STRING, "ox_math", NULL, NULL); |
mathcap_init(VERSION, ID_STRING, "ox_math", NULL, NULL); |
|
|
Line 87 int sm_receive_ox() |
|
Line 88 int sm_receive_ox() |
|
sm_run(code); |
sm_run(code); |
break; |
break; |
default: |
default: |
fprintf(stderr, "illeagal message? ox_tag = (%d)\n", tag); |
fprintf(ox_stderr, "illeagal message? ox_tag = (%d)\n", tag); |
break; |
break; |
} |
} |
return 1; |
return 1; |
Line 104 int sm(OXFILE *oxfp) |
|
Line 105 int sm(OXFILE *oxfp) |
|
FD_SET(oxf_fileno(oxfp), &fdmask); |
FD_SET(oxf_fileno(oxfp), &fdmask); |
|
|
while(1) { |
while(1) { |
if (select(2, &fdmask, NULL, NULL, NULL) > 0) { |
if (select(5, &fdmask, NULL, NULL, NULL) > 0) { |
sigset_t newmask, oldmask; |
sigset_t newmask, oldmask; |
sigemptyset(&newmask); |
sigemptyset(&newmask); |
sigaddset(&newmask, SIGUSR1); |
sigaddset(&newmask, SIGUSR1); |
Line 113 int sm(OXFILE *oxfp) |
|
Line 114 int sm(OXFILE *oxfp) |
|
sigprocmask(SIG_SETMASK, &oldmask, NULL); /* unmasked. */ |
sigprocmask(SIG_SETMASK, &oldmask, NULL); /* unmasked. */ |
} |
} |
} |
} |
fprintf(stderr, "SM: socket(%d) is closed.\n", stack_oxfp->fd); |
fprintf(ox_stderr, "SM: socket(%d) is closed.\n", stack_oxfp->fd); |
} |
} |