Changeset 7c96c03 in git for Singular/cntrlc.cc


Ignore:
Timestamp:
Apr 25, 2005, 3:25:46 PM (18 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', '91fdef05f09f54b8d58d92a472e9c4a43aa4656f')
Children:
3c7701bf86d90dc75b730f71518108d3a6a41f4b
Parents:
911a7a2aa353c94925a929b40ffab0ee13722bc4
Message:
*hannes: syntax fixed


git-svn-id: file:///usr/local/Singular/svn/trunk@7894 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/cntrlc.cc

    r911a7a r7c96c03  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: cntrlc.cc,v 1.44 2005-04-24 08:43:16 krueger Exp $ */
     4/* $Id: cntrlc.cc,v 1.45 2005-04-25 13:25:46 Singular Exp $ */
    55/*
    66* ABSTRACT - interupt handling
     
    8787typedef void (*si_hdl_typ)(int);
    8888
     89
    8990/*0 implementation*/
    9091/*---------------------------------------------------------------------*
     
    9495#ifndef MSDOS
    9596/* signals are not implemented in DJGCC */
    96 # ifndef macintosh
    97 /* signals are not right implemented in macintosh */
    9897void sigint_handler(int sig);
    99 # endif /* !macintosh */
    10098#endif /* MSDOS */
    10199
    102 extern sighandler_t set_signal ( int sig, sighandler_t signal_handler);
     100si_hdl_typ si_set_signal ( int sig, si_hdl_typ signal_handler);
    103101
    104102/*---------------------------------------------------------------------*/
     
    112110**/
    113111/*---------------------------------------------------------------------*/
    114 sighandler_t set_signal (
     112si_hdl_typ si_set_signal (
    115113  int sig,
    116   sighandler_t signal_handler
     114  si_hdl_typ signal_handler
    117115  )
    118116{
    119   sighandler_t retval;
    120   if ((retval=signal (sig, (si_hdl_typ)signal_handler)) == SIG_ERR) {
     117  si_hdl_typ retval=signal (sig, (si_hdl_typ)signal_handler);
     118  if (retval == SIG_ERR)
     119  {
    121120     fprintf(stderr, "Unable to init signal %d ... exiting...\n", sig);
    122121  }
    123122  siginterrupt(sig, 1);
    124123  return retval;
    125 }                               /* set_signal */
     124}                               /* si_set_signal */
    126125
    127126
     
    231230  mmPage_tab_acc++;
    232231  mmPage_AllowAccess((void *)base);
    233   set_signal(SIGSEGV,(si_hdl_typ)sig11_handler);
     232  si_set_signal(SIGSEGV,(si_hdl_typ)sig11_handler);
    234233}
    235234
     
    257256  o.it_value.tv_usec    =(unsigned)PAGE_INTERRUPT_TIME;
    258257  setitimer(ITIMER_VIRTUAL,&t,&o);
    259   set_signal(SIGVTALRM,(si_hdl_typ)sigalarm_handler);
     258  si_set_signal(SIGVTALRM,(si_hdl_typ)sigalarm_handler);
    260259}
    261260# endif /* PAGE_TEST */
     
    268267/*4 signal handler: linux*/
    269268# ifdef PAGE_TEST
    270   set_signal(SIGSEGV,(si_hdl_typ)sig11_handler);
     269  si_set_signal(SIGSEGV,(si_hdl_typ)sig11_handler);
    271270  struct itimerval t,o;
    272271  memset(&t,0,sizeof(t));
     
    276275  o.it_value.tv_usec    =(unsigned)PAGE_INTERRUPT_TIME;
    277276  setitimer(ITIMER_VIRTUAL,&t,&o);
    278   set_signal(SIGVTALRM,(si_hdl_typ)sigalarm_handler);
     277  si_set_signal(SIGVTALRM,(si_hdl_typ)sigalarm_handler);
    279278# else /* PAGE_TEST */
    280   if (SIG_ERR==set_signal(SIGSEGV,(si_hdl_typ)sigsegv_handler))
     279  if (SIG_ERR==si_set_signal(SIGSEGV,(si_hdl_typ)sigsegv_handler))
    281280  {
    282281    PrintS("cannot set signal handler for SEGV\n");
    283282  }
    284283# endif /* PAGE_TEST */
    285   if (SIG_ERR==set_signal(SIGFPE, (si_hdl_typ)sigsegv_handler))
     284  if (SIG_ERR==si_set_signal(SIGFPE, (si_hdl_typ)sigsegv_handler))
    286285  {
    287286    PrintS("cannot set signal handler for FPE\n");
    288287  }
    289   if (SIG_ERR==set_signal(SIGILL, (si_hdl_typ)sigsegv_handler))
     288  if (SIG_ERR==si_set_signal(SIGILL, (si_hdl_typ)sigsegv_handler))
    290289  {
    291290    PrintS("cannot set signal handler for ILL\n");
    292291  }
    293   if (SIG_ERR==set_signal(SIGIOT, (si_hdl_typ)sigsegv_handler))
     292  if (SIG_ERR==si_set_signal(SIGIOT, (si_hdl_typ)sigsegv_handler))
    294293  {
    295294    PrintS("cannot set signal handler for IOT\n");
    296295  }
    297   if (SIG_ERR==set_signal(SIGINT ,(si_hdl_typ)sigint_handler))
     296  if (SIG_ERR==si_set_signal(SIGINT ,(si_hdl_typ)sigint_handler))
    298297  {
    299298    PrintS("cannot set signal handler for INT\n");
    300299  }
    301   //set_signal(SIGCHLD, (void (*)(int))SIG_IGN);
    302   set_signal(SIGCHLD, (si_hdl_typ)sig_ign_hdl);
     300  //si_set_signal(SIGCHLD, (void (*)(int))SIG_IGN);
     301  si_set_signal(SIGCHLD, (si_hdl_typ)sig_ign_hdl);
    303302}
    304303
     
    341340{
    342341/*4 signal handler:*/
    343   set_signal(SIGSEGV,sigsegv_handler);
    344   set_signal(SIGBUS, sigsegv_handler);
    345   set_signal(SIGFPE, sigsegv_handler);
    346   set_signal(SIGILL, sigsegv_handler);
    347   set_signal(SIGIOT, sigsegv_handler);
    348   set_signal(SIGINT ,sigint_handler);
    349   set_signal(SIGCHLD, (void (*)(int))SIG_IGN);
     342  si_set_signal(SIGSEGV,sigsegv_handler);
     343  si_set_signal(SIGBUS, sigsegv_handler);
     344  si_set_signal(SIGFPE, sigsegv_handler);
     345  si_set_signal(SIGILL, sigsegv_handler);
     346  si_set_signal(SIGIOT, sigsegv_handler);
     347  si_set_signal(SIGINT ,sigint_handler);
     348  si_set_signal(SIGCHLD, (void (*)(int))SIG_IGN);
    350349}
    351350# else /* SPARC_SUNOS_4 */
     
    355354* signal handler for run time errors, general version
    356355*/
    357 #  ifndef macintosh
    358356void sigsegv_handler(int sig)
    359357{
     
    387385  exit(0);
    388386}
    389 #  endif /* !macintosh */
    390387
    391388/*2
     
    396393#  ifndef MSDOS
    397394/* signals are not implemented in DJGCC */
    398 #   ifndef macintosh
    399 /* signals are temporaliy removed for macs. */
    400395/*4 signal handler:*/
    401   set_signal(SIGSEGV,(void (*) (int))sigsegv_handler);
     396  si_set_signal(SIGSEGV,(void (*) (int))sigsegv_handler);
    402397#    ifdef SIGBUS
    403   set_signal(SIGBUS, sigsegv_handler);
     398  si_set_signal(SIGBUS, sigsegv_handler);
    404399#    endif /* SIGBUS */
    405400#    ifdef SIGFPE
    406   set_signal(SIGFPE, sigsegv_handler);
     401  si_set_signal(SIGFPE, sigsegv_handler);
    407402#    endif /* SIGFPE */
    408403#    ifdef SIGILL
    409   set_signal(SIGILL, sigsegv_handler);
     404  si_set_signal(SIGILL, sigsegv_handler);
    410405#    endif /* SIGILL */
    411406#    ifdef SIGIOT
    412   set_signal(SIGIOT, sigsegv_handler);
     407  si_set_signal(SIGIOT, sigsegv_handler);
    413408#    endif /* SIGIOT */
    414409#    ifdef SIGXCPU
    415   set_signal(SIGXCPU, (void (*)(int))SIG_IGN);
     410  si_set_signal(SIGXCPU, (void (*)(int))SIG_IGN);
    416411#    endif /* SIGIOT */
    417   set_signal(SIGINT ,sigint_handler);
    418   set_signal(SIGCHLD, (void (*)(int))SIG_IGN);
    419 #   endif /* !macintosh */
     412  si_set_signal(SIGINT ,sigint_handler);
     413  si_set_signal(SIGCHLD, (void (*)(int))SIG_IGN);
    420414#  endif /* !MSDOS */
    421415}
     
    425419
    426420#ifndef MSDOS
    427 # ifndef macintosh
    428421/*2
    429422* signal handler for SIGINT
     
    486479      case 'c':
    487480                if (feGetOptValue(FE_OPT_EMACS) == NULL) fgetc(stdin);
    488                 set_signal(SIGINT ,(si_hdl_typ)sigint_handler);
     481                si_set_signal(SIGINT ,(si_hdl_typ)sigint_handler);
    489482                return;
    490483                //siCntrlc ++;
    491                 //if (siCntrlc>2) set_signal(SIGINT,(si_hdl_typ) sigsegv_handler);
    492                 //else            set_signal(SIGINT,(si_hdl_typ) sigint_handler);
     484                //if (siCntrlc>2) si_set_signal(SIGINT,(si_hdl_typ) sigsegv_handler);
     485                //else            si_set_signal(SIGINT,(si_hdl_typ) sigint_handler);
    493486    }
    494487    cnt++;
     
    496489  }
    497490}
    498 # endif /* !macintosh */
    499491#endif /* !MSDOS */
    500492
     
    538530//    int saveecho = si_echo;
    539531//    siCntrlc = FALSE;
    540 //    set_signal(SIGINT ,sigint_handler);
     532//    si_set_signal(SIGINT ,sigint_handler);
    541533////#ifdef macintosh
    542534////    flush_intr();
     
    735727  {
    736728    int ret;
    737     set_signal(SIGCHLD, (void (*)(int))SIG_DFL);
     729    si_set_signal(SIGCHLD, (void (*)(int))SIG_DFL);
    738730    ret = system(call);
    739     set_signal(SIGCHLD, (void (*)(int))SIG_IGN);
     731    si_set_signal(SIGCHLD, (void (*)(int))SIG_IGN);
    740732    return ret;
    741733  }
Note: See TracChangeset for help on using the changeset viewer.