Changeset df326b in git
- Timestamp:
- Feb 19, 2013, 9:43:53 PM (10 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
- Children:
- 20fee797b7a66e0f0dd4d487a5647e70eeee2f8e
- Parents:
- 44ca2ffccdd8d9f8f06ceab239425b54669e3200
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2013-02-19 21:43:53+01:00
- git-committer:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2013-02-20 14:50:04+01:00
- Location:
- Singular/links
- Files:
-
- 1 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/links/ndbm.cc
r44ca2f rdf326b 291 291 #endif 292 292 } 293 short tmp; 294 memcpy(&tmp, db->dbm_pagbuf, sizeof(short)); 295 if (tmp != 0) 293 if (((short *)db->dbm_pagbuf)[0] != 0) 296 294 { 297 295 item = makdatum(db->dbm_pagbuf, db->dbm_keyptr); … … 430 428 29, 25, 21, 17, 13, 9, 5, 1, 431 429 }; 432 static unsignedlong hltab[64]430 static long hltab[64] 433 431 = { 434 432 06100151277L,06106161736L,06452611562L,05001724107L, … … 454 452 register int s, c, j; 455 453 register char *cp; 456 register unsignedlong hashl;457 register unsignedint hashi;454 register long hashl; 455 register int hashi; 458 456 459 457 hashl = 0; … … 469 467 } 470 468 } 471 return ( long)(hashl);469 return (hashl); 472 470 } 473 471 -
Singular/links/s_buff.cc
r44ca2f rdf326b 1 1 #include <unistd.h> 2 #include <stdio.h> 2 3 #include <ctype.h> 3 4 #include <sys/types.h> … … 21 22 //typedef struct s_buff_s * s_buff; 22 23 23 #define S_BUFF_LEN 819224 #define S_BUFF_LEN 4096 24 25 25 26 sigset_t ssi_sigmask; // set in ssiLink.cc … … 52 53 { 53 54 SSI_BLOCK_CHLD; 54 #ifdef TEST_SBUFF55 printf("%d bytes read, %d read op.\n",F->len[10],F->len[0]);56 if (F->len[1]>0) printf("%d read op with <16 bytes\n",F->len[1]);57 if (F->len[2]>0) printf("%d read op with <32 bytes\n",F->len[2]);58 if (F->len[3]>0) printf("%d read op with <54 bytes\n",F->len[3]);59 if (F->len[4]>0) printf("%d read op with <128 bytes\n",F->len[4]);60 if (F->len[5]>0) printf("%d read op with <256 bytes\n",F->len[5]);61 if (F->len[6]>0) printf("%d read op with <512 bytes\n",F->len[6]);62 if (F->len[7]>0) printf("%d read op with <1024 bytes\n",F->len[7]);63 if (F->len[8]>0) printf("%d read op with <2048 bytes\n",F->len[8]);64 if (F->len[9]>0) printf("%d read op with >=2048 bytes\n",F->len[9]);65 #endif66 55 omFreeSize(F->buff,S_BUFF_LEN); 67 56 int r=close(F->fd); … … 96 85 F->end=r-1; 97 86 F->bp=0; 98 #ifdef TEST_SBUFF99 F->len[0]++;100 if (r<16) F->len[1]++;101 else if (r<32) F->len[2]++;102 else if (r<64) F->len[3]++;103 else if (r<128) F->len[4]++;104 else if (r<256) F->len[5]++;105 else if (r<512) F->len[6]++;106 else if (r<1024) F->len[7]++;107 else if (r<2048) F->len[8]++;108 else F->len[9]++;109 F->len[10]+=r;110 #endif111 87 return F->buff[0]; 112 88 } … … 135 111 { 136 112 printf("link closed"); 137 return; 138 } 139 if (F->bp>=0) 113 } 114 else if (F->bp>=0) 140 115 { 141 116 F->buff[F->bp]=c; … … 172 147 } 173 148 149 long s_readlong(s_buff F) 150 { 151 if (F==NULL) 152 { 153 printf("link closed"); 154 return 0; 155 } 156 char c; 157 long neg=1; 158 long r=0; 159 //int digit=0; 160 do 161 { 162 c=s_getc(F); 163 } while((!F->is_eof) && (c<=' ')); 164 if (c=='-') { neg=-1; c=s_getc(F); } 165 while(isdigit(c)) 166 { 167 //digit++; 168 r=r*10+(c-'0'); 169 c=s_getc(F); 170 } 171 s_ungetc(c,F); 172 //if (digit==0) { printf("unknown char %c(%d)\n",c,c); /*debug*/ 173 // printf("buffer:%s\np=%d,e=%d\n",F->buff,F->bp,F->end);fflush(stdout); } /*debug*/ 174 return r*neg; 175 } 176 174 177 int s_readbytes(char *buff,int len, s_buff F) 175 178 { … … 254 257 if (neg==-1) mpz_neg(a,a); 255 258 } 256 257 259 int s_iseof(s_buff F) 258 260 { -
Singular/links/s_buff.h
r44ca2f rdf326b 3 3 4 4 #include<signal.h> 5 6 //#define TEST_SBUFF7 5 8 6 struct s_buff_s … … 13 11 int end; // last position in buff 14 12 int is_eof; 15 #ifdef TEST_SBUFF16 int len[11];17 #endif18 13 }; 19 14 … … 28 23 29 24 int s_readint(s_buff F); 25 long s_readlong(s_buff F); 30 26 int s_readbytes(char *buff,int len, s_buff F); 31 27 void s_readmpz(s_buff F, mpz_ptr a); -
Singular/links/semaphore.c
r44ca2f rdf326b 5 5 #include <stdio.h> 6 6 #include <stdlib.h> 7 #include <Singular/mod2.h> 7 8 #include <kernel/mod2.h> 8 9 9 10 #ifdef HAVE_SIMPLEIPC -
Singular/links/silink.cc
r44ca2f rdf326b 220 220 } 221 221 222 BOOLEAN slPrepClose(si_link l) 223 { 224 225 if(! SI_LINK_OPEN_P(l)) 226 return FALSE; 227 228 BOOLEAN res = TRUE; 229 if (l->m->PrepClose != NULL) 230 { 231 res = l->m->PrepClose(l); 232 if (res) 233 Werror("close: Error for link of type: %s, mode: %s, name: %s", 234 l->m->type, l->mode, l->name); 235 } 236 return res; 237 } 238 222 239 BOOLEAN slClose(si_link l) 223 240 { … … 339 356 Werror("dump: Error for link of type %s, mode: %s, name: %s", 340 357 l->m->type, l->mode, l->name); 341 342 358 if (!SI_LINK_R_OPEN_P(l)) slClose(l); // do not close r/w links 343 359 return res; … … 383 399 384 400 /* =============== ASCII ============================================= */ 385 BOOLEAN slOpenAscii(si_link l, short flag, leftv )401 BOOLEAN slOpenAscii(si_link l, short flag, leftv h) 386 402 { 387 403 const char *mode; … … 841 857 si_link_extension ns = (si_link_extension)omAlloc0Bin(s_si_link_extension_bin); 842 858 843 if (0) 0; 859 if (0) 0; // dummy 844 860 #ifdef HAVE_DBM 845 861 else if (strcmp(type, "DBM") == 0) … … 877 893 si_link_root->Open=slOpenAscii; 878 894 si_link_root->Close=slCloseAscii; 879 si_link_root->Kill= slCloseAscii;895 si_link_root->Kill=NULL; 880 896 si_link_root->Read=slReadAscii; 881 897 si_link_root->Read2=slReadAscii2; -
Singular/links/silink.h
r44ca2f rdf326b 23 23 typedef BOOLEAN (*slWriteProc)(si_link l, leftv lv); 24 24 typedef BOOLEAN (*slCloseProc)(si_link l); 25 typedef BOOLEAN (*slPrepCloseProc)(si_link l); 25 26 typedef BOOLEAN (*slKillProc)(si_link l); 26 27 typedef leftv (*slReadProc)(si_link l); … … 35 36 slOpenProc Open; 36 37 slCloseProc Close; 38 slPrepCloseProc PrepClose; 37 39 slKillProc Kill; 38 40 slReadProc Read; … … 76 78 BOOLEAN slOpen(si_link l, short flag, leftv h); 77 79 BOOLEAN slClose(si_link l); 80 BOOLEAN slPrepClose(si_link l); 78 81 leftv slRead(si_link l,leftv a=NULL); 79 82 BOOLEAN slWrite(si_link l, leftv v); … … 93 96 94 97 #include <omalloc/omalloc.h> 95 96 98 inline char* slString(si_link l) 97 99 { … … 122 124 123 125 extern link_list ssiToBeClosed; 126 extern BOOLEAN ssiToBeClosed_inactive; 124 127 #endif // SILINK_H -
Singular/links/sing_dbm.cc
r44ca2f rdf326b 3 3 ****************************************/ 4 4 5 //**************************************************************************/6 //7 //8 5 //**************************************************************************/ 9 6 // 'sing_dbm.cc' containes command to handle dbm-files under -
Singular/links/slInit_Dynamic.cc
r44ca2f rdf326b 37 37 s->Open=(slOpenProc)dynl_sym_warn(handle, "dbOpen"); 38 38 s->Close=(slCloseProc)dynl_sym_warn(handle, "dbClose"); 39 s->Kill= (slKillProc)dynl_sym_warn(handle, "dbClose");39 s->Kill=NULL; 40 40 s->Read=(slReadProc)dynl_sym_warn(handle, "dbRead1"); 41 41 s->Read2=(slRead2Proc)dynl_sym_warn(handle, "dbRead2"); 42 42 s->Write=(slWriteProc)dynl_sym_warn(handle, "dbWrite"); 43 43 44 if (s->Open == NULL || s->Close == NULL || s->Kill == NULL ||44 if (s->Open == NULL || s->Close == NULL || 45 45 s->Read == NULL || s->Read2 == NULL) 46 46 return NULL; -
Singular/links/ssiLink.cc
r44ca2f rdf326b 26 26 #include <kernel/mod2.h> 27 27 28 #include <Singular/tok.h>29 #include <Singular/ipshell.h>30 #include <Singular/ipid.h>31 28 #include <omalloc/omalloc.h> 29 30 #include <misc/intvec.h> 31 #include <misc/options.h> 32 32 33 #include <polys/monomials/ring.h> 33 34 #include <polys/matpol.h> 35 36 #include <coeffs/bigintmat.h> 37 34 38 #include <kernel/ideals.h> 35 39 #include <kernel/polys.h> 36 40 #include <kernel/longrat.h> 37 41 #include <kernel/ideals.h> 38 #include <misc/intvec.h>39 #include <misc/options.h>40 42 #include <kernel/timer.h> 43 44 #include <Singular/tok.h> 45 #include <Singular/ipshell.h> 46 #include <Singular/ipid.h> 47 41 48 #include <Singular/subexpr.h> 42 #include <Singular/links/silink.h>43 49 #include <Singular/cntrlc.h> 44 50 #include <Singular/lists.h> 45 51 #include <Singular/blackbox.h> 52 53 #include <Singular/links/silink.h> 46 54 #include <Singular/links/s_buff.h> 47 55 #include <Singular/links/ssiLink.h> 56 57 // TODO: use number n_InitMPZ(mpz_t n, coeffs_BIGINT) instead!? 48 58 49 59 struct snumber_dummy … … 58 68 typedef struct snumber_dummy *number_dummy; 59 69 70 #ifdef HAVE_SIMPLEIPC 71 #include <Singular/simpleipc.h> 72 #endif 60 73 //#if (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600) 61 74 //#define HAVE_PSELECT 62 75 //#endif 63 76 64 #define SSI_VERSION 4 65 77 #define SSI_VERSION 5 78 79 // 64 bit version: 80 //#if SIZEOF_LONG == 8 81 #if 0 82 #define MAX_NUM_SIZE 60 83 #define POW_2_28 (1L<<60) 84 #define LONG long 85 #else 86 // 32 bit version: 87 #define MAX_NUM_SIZE 28 88 #define POW_2_28 (1L<<28) 89 #define LONG int 90 #endif 66 91 typedef struct 67 92 { … … 73 98 char level; 74 99 char send_quit_at_exit; 100 char quit_sent; 75 101 76 102 } ssiInfo; 77 78 103 79 104 link_list ssiToBeClosed=NULL; … … 126 151 // or 3 3 <mpz_t nominator> 127 152 SSI_BLOCK_CHLD; 128 if( (long)(n) & SR_INT)153 if(SR_HDL(n) & SR_INT) 129 154 { 130 155 fprintf(d->f_write,"4 %ld ",SR_TO_INT(n)); … … 164 189 if(SR_HDL(n) & SR_INT) 165 190 { 166 fprintf(d->f_write,"4 %ld ",SR_TO_INT(n)); 191 #if SIZEOF_LONG == 4 192 fprintf(d->f_write,"4 %d ",((LONG)SR_TO_INT(n))); 193 #else 194 long nn=SR_TO_INT(n); 195 if ((nn<POW_2_28)||(nn>= -POW_2_28)) 196 fprintf(d->f_write,"4 %d ",((LONG)nn)); // NOTE: use %ld once LONG can be long !!! 197 else 198 { 199 mpz_t tmp; 200 mpz_init_set_si(tmp,nn); 201 fputs("8 ",d->f_write); 202 mpz_out_str (d->f_write,32, tmp); 203 fputc(' ',d->f_write); 204 mpz_clear(tmp); 205 } 206 #endif 167 207 //if (d->f_debug!=NULL) fprintf(d->f_debug,"number: short \"%ld\" ",SR_TO_INT(n)); 168 208 } … … 229 269 } 230 270 break; 271 231 272 case ringorder_a64: 232 273 case ringorder_M: … … 243 284 } 244 285 245 void ssiWritePoly(ssiInfo *d, poly p)286 void ssiWritePoly(ssiInfo *d, int typ, poly p) 246 287 { 247 288 SSI_BLOCK_CHLD; 248 289 fprintf(d->f_write,"%d ",pLength(p));//number of terms 249 290 SSI_UNBLOCK_CHLD; 291 int i; 250 292 251 293 while(p!=NULL) … … 267 309 void ssiWriteIdeal(ssiInfo *d, int typ,ideal I) 268 310 { 269 // syntax ideal/module: 7 # of elements <poly 1> <poly2>.....270 // syntax matrix: 8 <rows> <cols> <poly 1> <poly2>.....311 // syntax: 7 # of elements <poly 1> <poly2>..... 312 // syntax: 8 <rows> <cols> <poly 1> <poly2>..... 271 313 matrix M=(matrix)I; 314 int mn; 272 315 SSI_BLOCK_CHLD; 273 316 if (typ==MATRIX_CMD) 274 fprintf(d->f_write,"%d %d ", MATROWS(M),MATCOLS(M)); 317 { 318 mn=MATROWS(M)*MATCOLS(M); 319 fprintf(d->f_write,"%d %d ", MATROWS(M),MATCOLS(M)); 320 } 275 321 else 322 { 323 mn=IDELEMS(I); 276 324 fprintf(d->f_write,"%d ",IDELEMS(I)); 325 } 277 326 SSI_UNBLOCK_CHLD; 278 327 279 328 int i; 280 281 for(i=0;i<IDELEMS(I);i++) 329 int tt; 330 if (typ==MODUL_CMD) tt=VECTOR_CMD; 331 else tt=POLY_CMD; 332 333 for(i=0;i<mn;i++) 282 334 { 283 ssiWritePoly(d, I->m[i]);335 ssiWritePoly(d,tt,I->m[i]); 284 336 } 285 337 } 338 286 339 void ssiWriteCommand(si_link l, command D) 287 340 { … … 312 365 { 313 366 ssiInfo *d=(ssiInfo*)l->data; 367 int Ll=lSize(dd); 314 368 SSI_BLOCK_CHLD; 315 fprintf(d->f_write,"%d ", dd->nr+1);369 fprintf(d->f_write,"%d ",Ll+1); 316 370 SSI_UNBLOCK_CHLD; 317 371 int i; 318 for(i=0;i<= dd->nr;i++)372 for(i=0;i<=Ll;i++) 319 373 { 320 374 ssiWrite(l,&(dd->m[i])); … … 340 394 { 341 395 fprintf(d->f_write,"%d ",(*v)[i]); 396 } 397 SSI_UNBLOCK_CHLD; 398 } 399 400 void ssiWriteBigintmat(ssiInfo *d,bigintmat * v) 401 { 402 SSI_BLOCK_CHLD; 403 fprintf(d->f_write,"%d %d ",v->rows(),v->cols()); 404 int i; 405 for(i=0;i<v->length();i++) 406 { 407 ssiWriteBigInt(d,(*v)[i]); 342 408 } 343 409 SSI_UNBLOCK_CHLD; … … 387 453 } 388 454 389 number ssiReadNumber(ssiInfo *d) 390 { 391 if (rField_is_Q(d->r)) 392 { 393 int sub_type=s_readint(d->f_read); 394 switch(sub_type) 395 { 455 static number ssiReadQNumber(ssiInfo *d) 456 { 457 int sub_type=-1; 458 sub_type=s_readint(d->f_read); 459 switch(sub_type) 460 { 396 461 case 0: 397 462 case 1: … … 417 482 { 418 483 int dd=s_readint(d->f_read); 419 return n_Init(dd, d->r->cf);484 return n_Init(dd,coeffs_BIGINT); 420 485 } 421 486 case 5: … … 441 506 default: Werror("error in reading number: invalid subtype %d",sub_type); 442 507 return NULL; 443 } 508 } 509 return NULL; 510 } 511 number ssiReadNumber(ssiInfo *d) 512 { 513 if (rField_is_Q(d->r)) 514 { 515 return ssiReadQNumber(d); 444 516 } 445 517 else if (rField_is_Zp(d->r)) … … 456 528 { 457 529 /* syntax is <ch> <N> <l1> <v1> ...<lN> <vN> <number of orderings> <ord1> <block0_1> <block1_1> .... */ 458 int ch, N,i ;530 int ch, N,i,l; 459 531 char **names; 460 532 ch=s_readint(d->f_read); … … 513 585 //Print("poly: terms:%d\n",n); 514 586 poly p; 587 int j; 588 j=0; 515 589 poly ret=NULL; 516 590 poly prev=NULL; … … 658 732 return v; 659 733 } 734 bigintmat* ssiReadBigintmat(ssiInfo *d) 735 { 736 int r,c; 737 r=s_readint(d->f_read); 738 c=s_readint(d->f_read); 739 bigintmat *v=new bigintmat(r,c,coeffs_BIGINT); 740 for(int i=0;i<r*c;i++) 741 { 742 (*v)[i]=ssiReadBigInt(d); 743 } 744 return v; 745 } 660 746 661 747 void ssiReadBlackbox(leftv res, si_link l) … … 720 806 int pc[2]; 721 807 int cp[2]; 722 808 SSI_BLOCK_CHLD; 723 809 pipe(pc); 724 810 pipe(cp); 725 811 pid_t pid=fork(); 726 812 SSI_UNBLOCK_CHLD; 727 813 if (pid==0) /*fork: child*/ 728 814 { … … 731 817 while(hh!=NULL) 732 818 { 733 819 SI_LINK_SET_CLOSE_P(hh->l); 734 820 ssiInfo *dd=(ssiInfo*)hh->l->data; 735 821 SSI_BLOCK_CHLD; 736 822 s_close(dd->f_read); 737 823 fclose(dd->f_write); 738 824 SSI_UNBLOCK_CHLD; 739 825 if (dd->r!=NULL) rKill(dd->r); 740 826 omFreeSize((ADDRESS)dd,(sizeof *dd)); … … 745 831 } 746 832 ssiToBeClosed->next=NULL; 747 833 SSI_BLOCK_CHLD; 748 834 close(pc[1]); close(cp[0]); 749 835 d->f_write=fdopen(cp[1],"w"); 750 751 752 836 SSI_UNBLOCK_CHLD; 837 d->f_read=s_open(pc[0]); 838 d->fd_read=pc[0]; 753 839 d->fd_write=cp[1]; 754 840 l->data=d; … … 759 845 //myynest=0; 760 846 fe_fgets_stdin=fe_fgets_dummy; 761 WerrorS_callback=WerrorS_batch;762 847 if ((u!=NULL)&&(u->rtyp==IDHDL)) 763 848 { … … 783 868 { 784 869 d->pid=pid; 785 870 SSI_BLOCK_CHLD; 786 871 close(pc[0]); close(cp[1]); 787 872 d->f_write=fdopen(pc[1],"w"); 788 789 790 873 SSI_UNBLOCK_CHLD; 874 d->f_read=s_open(cp[0]); 875 d->fd_read=cp[0]; 791 876 d->fd_write=pc[1]; 792 877 SI_LINK_SET_RW_OPEN_P(l); … … 806 891 int sockfd, newsockfd, portno, clilen; 807 892 struct sockaddr_in serv_addr, cli_addr; 893 int n; 808 894 sockfd = socket(AF_INET, SOCK_STREAM, 0); 809 895 if(sockfd < 0) … … 832 918 while(bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0); 833 919 Print("waiting on port %d\n", portno);mflush(); 834 listen(sockfd, 5);920 listen(sockfd,1); 835 921 newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, (socklen_t *)&clilen); 836 922 if(newsockfd < 0) … … 866 952 int sockfd, newsockfd, portno, clilen; 867 953 struct sockaddr_in serv_addr, cli_addr; 954 int n; 868 955 sockfd = socket(AF_INET, SOCK_STREAM, 0); 869 956 if(sockfd < 0) … … 891 978 while(bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0); 892 979 //Print("waiting on port %d\n", portno);mflush(); 893 listen(sockfd, 5);980 listen(sockfd,1); 894 981 char* cli_host = (char*)omAlloc(256); 895 982 char* path = (char*)omAlloc(1024); … … 933 1020 d->fd_write = newsockfd; 934 1021 d->f_read = s_open(newsockfd); 935 1022 SSI_BLOCK_CHLD; 936 1023 d->f_write = fdopen(newsockfd, "w"); 937 1024 close(sockfd); 938 1025 SSI_UNBLOCK_CHLD; 939 1026 SI_LINK_SET_RW_OPEN_P(l); 940 1027 d->send_quit_at_exit=1; 1028 SSI_BLOCK_CHLD; 941 1029 fprintf(d->f_write,"98 %d %d %u %u\n",SSI_VERSION,MAX_TOK,si_opt_1,si_opt_2); 1030 SSI_UNBLOCK_CHLD; 942 1031 } 943 1032 // ---------------------------------------------------------------------- … … 945 1034 { 946 1035 char* host = (char*)omAlloc(256); 947 int sockfd, portno ;1036 int sockfd, portno, n; 948 1037 struct sockaddr_in serv_addr; 949 1038 struct hostent *server; … … 1001 1090 } 1002 1091 } 1003 1092 SSI_BLOCK_CHLD; 1004 1093 outfile=myfopen(filename,mode); 1005 1094 SSI_UNBLOCK_CHLD; 1006 1095 if (outfile!=NULL) 1007 1096 { … … 1015 1104 else 1016 1105 { 1106 SSI_BLOCK_CHLD; 1017 1107 d->f_write = outfile; 1018 1108 fprintf(d->f_write,"98 %d %d %u %u\n",SSI_VERSION,MAX_TOK,si_opt_1,si_opt_2); 1109 SSI_UNBLOCK_CHLD; 1019 1110 } 1020 1111 } … … 1033 1124 1034 1125 //**************************************************************************/ 1126 BOOLEAN ssiPrepClose(si_link l) 1127 { 1128 if (l!=NULL) 1129 { 1130 ssiInfo *d = (ssiInfo *)l->data; 1131 if (d!=NULL) 1132 { 1133 if (d->send_quit_at_exit) 1134 { 1135 SSI_BLOCK_CHLD; 1136 fputs("99\n",d->f_write); 1137 fflush(d->f_write); 1138 SSI_UNBLOCK_CHLD; 1139 } 1140 d->quit_sent=1; 1141 } 1142 } 1143 return FALSE; 1144 } 1145 1035 1146 BOOLEAN ssiClose(si_link l) 1036 1147 { … … 1041 1152 if (d!=NULL) 1042 1153 { 1043 if (d->send_quit_at_exit) 1154 if ((d->send_quit_at_exit) 1155 && (d->quit_sent==0)) 1044 1156 { 1045 1157 SSI_BLOCK_CHLD; … … 1108 1220 ssiInfo *d = (ssiInfo *)l->data; 1109 1221 leftv res=(leftv)omAlloc0(sizeof(sleftv)); 1110 int t=s_readint(d->f_read); 1222 int t=0; 1223 t=s_readint(d->f_read); 1111 1224 //Print("got type %d\n",t); 1112 1225 switch(t) … … 1185 1298 res->data=ssiReadIntmat(d); 1186 1299 break; 1300 case 19: res->rtyp=BIGINTMAT_CMD; 1301 res->data=ssiReadBigintmat(d); 1302 break; 1187 1303 case 20: ssiReadBlackbox(res,l); 1188 1304 break; … … 1275 1391 if(tt==POLY_CMD) fputs("6 ",d->f_write); 1276 1392 else fputs("9 ",d->f_write); 1277 ssiWritePoly(d, (poly)dd);1393 ssiWritePoly(d,tt,(poly)dd); 1278 1394 break; 1279 1395 case IDEAL_CMD: … … 1315 1431 ssiWriteIntmat(d,(intvec *)dd); 1316 1432 break; 1433 case BIGINTMAT_CMD: 1434 fputs("19 ",d->f_write); 1435 ssiWriteBigintmat(d,(bigintmat *)dd); 1436 break; 1317 1437 default: 1318 1438 if (tt>MAX_TOK) … … 1365 1485 && (strcmp(request, "read") == 0)) 1366 1486 { 1367 fd_set mask ;1487 fd_set mask, fdmask; 1368 1488 struct timeval wt; 1369 1489 if (s_isready(d->f_read)) return "ready"; … … 1690 1810 } 1691 1811 int portno; 1812 int n; 1692 1813 ssiReserved_sockfd = socket(AF_INET, SOCK_STREAM, 0); 1693 1814 if(ssiReserved_sockfd < 0) … … 1791 1912 **/ 1792 1913 /*---------------------------------------------------------------------*/ 1793 void sig_chld_hdl(int )1914 void sig_chld_hdl(int sig) 1794 1915 { 1795 1916 pid_t kidpid; … … 1919 2040 1920 2041 if (currRingHdl != rh) rSetHdl(rh); 1921 //fprintf(fd, "option(set, intvec(%d, %d));\n", test, verbose);2042 //fprintf(fd, "option(set, intvec(%d, %d));\n", si_opt_1, si_opt_2); 1922 2043 1923 2044 return status; … … 1963 2084 // 17 intvec <len> ... 1964 2085 // 18 intmat 2086 // 19 bigintmat <r> <c> ... 1965 2087 // 1966 2088 // 20 blackbox <name> ... -
Singular/links/ssiLink.h
r44ca2f rdf326b 6 6 * Purpose: declaration of sl_link routines for ssi 7 7 ***************************************************************/ 8 9 8 #ifndef SSILINK_H 9 #define SSILINK_H 10 10 BOOLEAN ssiOpen(si_link l, short flag, leftv u); 11 11 BOOLEAN ssiWrite(si_link l, leftv v); … … 17 17 int ssiBatch(const char *host, const char * port); 18 18 /* return 0 on success, >0 else*/ 19 20 21 void sig_chld_hdl(int sig); 19 22 #endif 20 23
Note: See TracChangeset
for help on using the changeset viewer.