Changeset 4e595a7 in git


Ignore:
Timestamp:
Jun 5, 1997, 6:41:21 PM (26 years ago)
Author:
Olaf Bachmann <obachman@…>
Branches:
(u'spielwiese', 'a7324b6e0b44a1a8ed3fa4d9ca3e2ff210ddd52c')
Children:
5756804ac5037bf827b8e5d382c302898cafb2f0
Parents:
61941e21fd08b603e3f7a01037a82e96bc71952c
Message:
Thu Jun  5 15:16:19 1997  Olaf Bachmann
<obachman@ratchwum.mathematik.uni-kl.de (Olaf Bachmann)>

	* added MPtcp fork link mode, which is now default MPtcp mode;
	  documented it; included in mpcheck


git-svn-id: file:///usr/local/Singular/svn/trunk@371 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • Singular/Makefile.in

    r61941e2 r4e595a7  
    355355        tesths.cc iparith.og mpsr_Tok.og $(OBJG) ${LDFLAGS} ${LIBS}
    356356
    357 iparith.og: ${OBJS} iparith.inc iparith.cc
     357iparith.og: iparith.inc iparith.cc
    358358        $(CXXG)  ${CXXFLAGSG} ${CPPFLAGS} ${DEFSG} -c iparith.cc -o iparith.og
    359359
  • Singular/configure

    r61941e2 r4e595a7  
    533533
    534534SINGULAR_MAJOR_VERSION=1
    535 SINGULAR_MINOR_VERSION=0
     535SINGULAR_MINOR_VERSION=1
    536536SINGULAR_SUB_VERSION=0
    537 VERSION_DATE="Beta, May 1997"
     537VERSION_DATE="June 1997"
    538538
    539539
  • Singular/configure.in

    r61941e2 r4e595a7  
    77dnl
    88SINGULAR_MAJOR_VERSION=1
    9 SINGULAR_MINOR_VERSION=0
     9SINGULAR_MINOR_VERSION=1
    1010SINGULAR_SUB_VERSION=0
    11 VERSION_DATE="Beta, May 1997"
     11VERSION_DATE="June 1997"
    1212AC_SUBST(SINGULAR_MAJOR_VERSION)
    1313AC_SUBST(SINGULAR_MINOR_VERSION)
  • Singular/sing_mp.cc

    r61941e2 r4e595a7  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: sing_mp.cc,v 1.12 1997-04-12 16:04:46 Singular Exp $ */
     4/* $Id: sing_mp.cc,v 1.13 1997-06-05 16:41:21 obachman Exp $ */
    55
    66/*
     
    2323#include"mpsr.h"
    2424
     25static int Batch_ReadEval(si_link silink);
     26
    2527#ifdef MPSR_DEBUG
    2628#define MP_SET_LINK_OPTIONS(link) \
     
    3436
    3537/* =============== general utilities ====================================== */
    36 void FreeCmdArgs(int argc, char** argv)
     38static void FreeCmdArgs(int argc, char** argv)
    3739{
    3840  int i;
     
    4345}
    4446
    45 void GetCmdArgs(int *argc, char ***argv, char *str)
     47static void GetCmdArgs(int *argc, char ***argv, char *str)
    4648{
    4749  if (str == NULL || str[0] == '\0')
     
    103105 *
    104106 ***************************************************************/
    105 BOOLEAN slOpenMPFile(si_link l, short flag)
     107static BOOLEAN slOpenMPFile(si_link l, short flag)
    106108{
    107109  char *argv[] = {"-MPtransp", "FILE", "-MPmode", "append",
     
    221223}
    222224
    223 BOOLEAN slOpenMPTcp(si_link l, short flag)
     225static MP_Link_pt slOpenMPFork(si_link l, int n_argc, char **n_argv)
     226{
     227  MP_Link_pt link = NULL;
     228  char *argv[] = {"-MPtransp", "TCP", "-MPmode", "fork", "-MPport", "1703"};
     229  char *port = IMP_GetCmdlineArg(n_argc, n_argv, "-MPport");
     230
     231  if (port != NULL) argv[5] = port;
     232
     233  link = MP_OpenLink(mp_Env, 6, argv);   
     234  if (link != NULL)
     235  {
     236    if (MP_GetLinkStatus(link, MP_LinkIsParent))
     237    {
     238    /* parent's business */
     239      if (l->name != NULL) FreeL(l->name);
     240      l->name = mstrdup("parent");
     241      return link;
     242    }
     243    else
     244    {
     245      /* child's business -- go into batch mode */
     246      if (l->name != NULL) FreeL(l->name);
     247      l->name = mstrdup("child");
     248      MP_SET_LINK_OPTIONS(link);
     249      SI_LINK_SET_RW_OPEN_P(l);
     250      l->data = (void *) link;
     251      feBatch=TRUE;
     252      _exit(Batch_ReadEval(slCopy(l)));
     253    }
     254  }
     255  else
     256  {
     257    /* only parent can get here */
     258    return NULL;
     259  }
     260}
     261
     262   
     263                               
     264static BOOLEAN slOpenMPTcp(si_link l, short flag)
    224265{
    225266  MP_Link_pt link = NULL;
     
    240281  if (strcmp(l->mode, "connect") == 0) link = slOpenMPConnect(argc, argv);
    241282  else if (strcmp(l->mode, "listen") == 0) link = slOpenMPListen(argc, argv);
    242   else
    243   {
    244     link = slOpenMPLaunch(argc, argv);
    245     if (link != NULL && (strcmp(l->mode, "launch") != 0))
    246     {
    247       FreeL(l->mode);
    248       l->mode = mstrdup("launch");
    249     }
     283  else if (strcmp(l->mode, "launch") == 0) link = slOpenMPLaunch(argc, argv);
     284  else
     285  {
     286    if (strcmp(l->mode, "fork") != 0)
     287    {
     288      if (l->mode != NULL) FreeL(l->mode);
     289      l->mode = mstrdup("fork");
     290    }
     291    link = slOpenMPFork(l, argc, argv);
    250292  }
    251293
     
    268310 ***************************************************************/
    269311
    270 BOOLEAN slWriteMP(si_link l, leftv v)
     312static BOOLEAN slWriteMP(si_link l, leftv v)
    271313{
    272314  leftv next = (v != NULL ? v->next : (leftv) NULL);
     
    322364}
    323365
    324 BOOLEAN slCloseMP(si_link l)
    325 {
    326   if ((strcmp(l->mode, "launch") == 0) &&
     366static BOOLEAN slCloseMP(si_link l)
     367{
     368  if ((strcmp(l->mode, "launch") == 0 || strcmp(l->mode, "fork") == 0) &&
    327369      (MP_GetLinkStatus((MP_Link_pt)l->data,MP_LinkReadyWriting) == MP_TRUE))
    328370    SentQuitMsg(l);
     
    333375
    334376
    335 BOOLEAN slDumpMP(si_link l)
     377static BOOLEAN slDumpMP(si_link l)
    336378{
    337379  mpsr_ClearError();
     
    345387}
    346388
    347 BOOLEAN slGetDumpMP(si_link l)
     389static BOOLEAN slGetDumpMP(si_link l)
    348390{
    349391  mpsr_ClearError();
     
    357399}
    358400
    359 char* slStatusMP(si_link l, char* request)
     401static char* slStatusMP(si_link l, char* request)
    360402{
    361403  if (strcmp(request, "read") == 0)
     
    381423 *
    382424 ***************************************************************/
     425
     426int Batch_ReadEval(si_link silink)
     427{
     428  leftv v = NULL;
     429  // establish top-level identifier for link
     430  idhdl id = enterid(mstrdup("mp_ll"), 0, LINK_CMD, &idroot, FALSE);
     431  IDLINK(id) = silink;
     432
     433  // the main read-eval-write loop
     434  while(1)
     435  {
     436    v = slRead(silink, v);
     437    if (feErrors != NULL)
     438    {
     439      if (v != NULL) v->CleanUp();
     440      v = mpsr_InitLeftv(STRING_CMD, (void *) feErrors);
     441      feErrors = NULL;
     442    }
     443
     444    // no need to evaluate -- it is done in the read
     445    if (v->Typ() == STRING_CMD &&
     446        (strcmp((char *)v->Data(), MPSR_QUIT_STRING)  == 0))
     447    {
     448      slKill(silink);
     449      return 0;
     450    }
     451
     452    slWriteMP(silink, v);
     453
     454    if (v != NULL)
     455    {
     456      v->CleanUp();
     457      Free(v, sizeof(sleftv));
     458      v = NULL;
     459    }
     460  }
     461  // should never get here
     462  return 1;
     463}
    383464
    384465// #define MPSR_BATCH_DEBUG
     
    394475#endif
    395476  si_link silink = (si_link) Alloc0(sizeof(sip_link));
    396   leftv v = NULL;
    397477  char *port = IMP_GetCmdlineArg(argc, argv, "-MPport");
    398478  char *host = IMP_GetCmdlineArg(argc, argv, "-MPhost");
    399479  char *istr;
    400   idhdl id;
    401480
    402481  // parse argv to get port and host
     
    419498  slInit(silink, istr);
    420499  FreeL(istr);
    421 
    422500  // open link
    423501  if (slOpen(silink, SI_LINK_OPEN))
     
    428506  }
    429507
    430   // establish top-level identifier for link
    431   id = enterid(mstrdup("mp_ll"), 0, LINK_CMD, &idroot, FALSE);
    432   IDLINK(id) = silink;
    433 
    434   // the main read-eval-write loop
    435   while(1)
    436   {
    437     v = slRead(silink, v);
    438     if (feErrors != NULL)
    439     {
    440       if (v != NULL) v->CleanUp();
    441       v = mpsr_InitLeftv(STRING_CMD, (void *) feErrors);
    442       feErrors = NULL;
    443     }
    444 
    445     // no need to evaluate -- it is done in the read
    446     if (v->Typ() == STRING_CMD &&
    447         (strcmp((char *)v->Data(), MPSR_QUIT_STRING)  == 0))
    448     {
    449       slKill(silink);
    450       return 0;
    451     }
    452 
    453     slWriteMP(silink, v);
    454 
    455     if (v != NULL)
    456     {
    457       v->CleanUp();
    458       Free(v, sizeof(sleftv));
    459       v = NULL;
    460     }
    461   }
    462   // should never get here
    463   return 1;
    464 }
     508  return Batch_ReadEval(silink);
     509}
     510
    465511
    466512/***************************************************************
Note: See TracChangeset for help on using the changeset viewer.