version 1.3, 1999/11/03 10:56:40 |
version 1.8, 2000/01/22 06:29:18 |
|
|
/* -*- mode: C; coding: euc-japan -*- */ |
/* -*- mode: C; coding: euc-japan -*- */ |
/* $OpenXM: OpenXM/src/ox_math/serv1.c,v 1.2 1999/11/02 06:11:58 ohara Exp $ */ |
/* $OpenXM: OpenXM/src/ox_math/serv1.c,v 1.7 2000/01/05 06:09:11 ohara Exp $ */ |
|
|
|
/* |
|
Copyright (C) Katsuyoshi OHARA, 2000. |
|
Portions copyright 1999 Wolfram Research, Inc. |
|
|
|
You must see OpenXM/Copyright/Copyright.generic. |
|
The MathLink Library is licensed from Wolfram Research Inc.. |
|
See OpenXM/Copyright/Copyright.mathlink for detail. |
|
*/ |
|
|
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
#include <unistd.h> |
#include <unistd.h> |
|
|
|
|
static int send_ox_sync_ball(int fd); |
static int send_ox_sync_ball(int fd); |
|
|
extern MLINK lp; |
|
static int sv_read = 3; |
static int sv_read = 3; |
static int sv_write = 4; |
static int sv_write = 4; |
|
|
static int flag_sigusr1 = 0; |
static int flag_sigusr1 = 0; |
static int flag_sigusr2 = 0; |
static int flag_sigusr2 = 0; |
|
|
/* 1 のとき割り込み禁止 */ |
/* if in_critical equals to 1 then we do not permit an interrupt. */ |
static int in_critical = 0; |
static int in_critical = 0; |
|
|
static int set_critical() |
static int set_critical() |
Line 80 static int exchange_ox_syncball(int fd) |
|
Line 88 static int exchange_ox_syncball(int fd) |
|
fprintf(stderr, "received a sync_ball.\n"); |
fprintf(stderr, "received a sync_ball.\n"); |
} |
} |
|
|
/* スタックマシン部分 */ |
/* a part of stack machine. */ |
int receive_ox(int fd_read, int fd_write) |
int receive_ox(int fd_read, int fd_write) |
{ |
{ |
int tag; |
int tag; |
Line 105 int receive_ox(int fd_read, int fd_write) |
|
Line 113 int receive_ox(int fd_read, int fd_write) |
|
return 0; |
return 0; |
} |
} |
|
|
|
int shutdown() |
|
{ |
|
close(sv_read); |
|
close(sv_write); |
|
ml_exit(); |
|
exit(0); |
|
} |
|
|
int main() |
int main() |
{ |
{ |
MATH_init(); |
ml_init(); |
initialize_stack(); |
initialize_stack(); |
|
|
signal(SIGUSR1, handler_reset1); |
signal(SIGUSR1, handler_reset1); |
signal(SIGKILL, handler_kill); |
signal(SIGKILL, handler_kill); |
|
|
/* バイトオーダの決定 */ |
|
decideByteOrderServer(sv_read, 0); |
decideByteOrderServer(sv_read, 0); |
|
|
while(1) { |
while(1) { |
|
|
already_send_ox_sync_ball = 0; |
already_send_ox_sync_ball = 0; |
} |
} |
} |
} |
MATH_exit(); |
shutdown(); |
} |
} |