Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv536
Modified Files: Tag: desiredata s_inter.c Log Message: cleanup
Index: s_inter.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v retrieving revision 1.5.4.10.2.25.2.20 retrieving revision 1.5.4.10.2.25.2.21 diff -C2 -d -r1.5.4.10.2.25.2.20 -r1.5.4.10.2.25.2.21 *** s_inter.c 9 Jul 2007 17:57:57 -0000 1.5.4.10.2.25.2.20 --- s_inter.c 10 Jul 2007 16:53:10 -0000 1.5.4.10.2.25.2.21 *************** *** 228,242 ****
void sys_setalarm(int microsec) { ! struct itimerval gonzo; ! #if 0 ! fprintf(stderr, "timer %d\n", microsec); ! #endif ! gonzo.it_interval.tv_sec = 0; ! gonzo.it_interval.tv_usec = 0; ! gonzo.it_value.tv_sec = 0; ! gonzo.it_value.tv_usec = microsec; if (microsec) sys_signal(SIGALRM, sys_alarmhandler); else sys_signal(SIGALRM, SIG_IGN); ! setitimer(ITIMER_REAL, &gonzo, 0); }
--- 228,239 ----
void sys_setalarm(int microsec) { ! struct itimerval it; ! it.it_interval.tv_sec = 0; ! it.it_interval.tv_usec = 0; ! it.it_value.tv_sec = 0; ! it.it_value.tv_usec = microsec; if (microsec) sys_signal(SIGALRM, sys_alarmhandler); else sys_signal(SIGALRM, SIG_IGN); ! setitimer(ITIMER_REAL, &it, 0); }
*************** *** 321,327 **** int nfd = sys_nfdpoll; int size = nfd * sizeof(t_fdpoll); - t_fdpoll *fp; sys_fdpoll = (t_fdpoll *)t_resizebytes(sys_fdpoll, size, size + sizeof(t_fdpoll)); ! fp = sys_fdpoll + nfd; fp->fdp_fd = fd; fp->fdp_fn = fn; --- 318,323 ---- int nfd = sys_nfdpoll; int size = nfd * sizeof(t_fdpoll); sys_fdpoll = (t_fdpoll *)t_resizebytes(sys_fdpoll, size, size + sizeof(t_fdpoll)); ! t_fdpoll *fp = sys_fdpoll + nfd; fp->fdp_fd = fd; fp->fdp_fn = fn; *************** *** 334,339 **** int nfd = sys_nfdpoll; int i, size = nfd * sizeof(t_fdpoll); ! t_fdpoll *fp; ! for (i = nfd, fp = sys_fdpoll; i--; fp++) { if (fp->fdp_fd == fd) { while (i--) { --- 330,335 ---- int nfd = sys_nfdpoll; int i, size = nfd * sizeof(t_fdpoll); ! t_fdpoll *fp = sys_fdpoll; ! for (i = nfd; i--; fp++) { if (fp->fdp_fd == fd) { while (i--) { *************** *** 341,346 **** fp++; } ! sys_fdpoll = (t_fdpoll *)t_resizebytes(sys_fdpoll, size, ! size - sizeof(t_fdpoll)); sys_nfdpoll = nfd - 1; return; --- 337,341 ---- fp++; } ! sys_fdpoll = (t_fdpoll *)t_resizebytes(sys_fdpoll, size, size - sizeof(t_fdpoll)); sys_nfdpoll = nfd - 1; return; *************** *** 372,386 **** static int socketreceiver_doread(t_socketreceiver *x) { char messbuf[INBUFSIZE], *bp = messbuf; - int indx; int inhead = x->inhead; int intail = x->intail; char *inbuf = x->inbuf; if (intail == inhead) return 0; ! for (indx = intail; indx != inhead; indx = (indx+1)&(INBUFSIZE-1)) { /* ";" not preceded by "" is a message boundary in current syntax. in future syntax it might become more complex. */ ! char c = *bp++ = inbuf[indx]; ! if (c == ';' && (!indx || inbuf[indx-1] != '\')) { ! intail = (indx+1)&(INBUFSIZE-1); binbuf_text(inbinbuf, messbuf, bp - messbuf); x->inhead = inhead; --- 367,380 ---- static int socketreceiver_doread(t_socketreceiver *x) { char messbuf[INBUFSIZE], *bp = messbuf; int inhead = x->inhead; int intail = x->intail; char *inbuf = x->inbuf; if (intail == inhead) return 0; ! for (int i=intail; i!=inhead; i=(i+1)&(INBUFSIZE-1)) { /* ";" not preceded by "" is a message boundary in current syntax. in future syntax it might become more complex. */ ! char c = *bp++ = inbuf[i]; ! if (c == ';' && (!i || inbuf[i-1] != '\')) { ! intail = (i+1)&(INBUFSIZE-1); binbuf_text(inbinbuf, messbuf, bp - messbuf); x->inhead = inhead; *************** *** 465,469 **** void sys_vgui(char *fmt, ...) { t_socketreceiver *self = sys_socketreceiver; - int msglen; va_list ap; va_start(ap, fmt); --- 459,462 ---- *************** *** 476,480 **** if (self->ohead > self->osize - GUI_ALLOCCHUNK/2) sys_trytogetmoreguibuf(self,self->osize + GUI_ALLOCCHUNK); ! msglen = vsnprintf(self->obuf+self->ohead, self->osize-self->ohead, fmt, ap); va_end(ap); if(msglen < 0) { --- 469,473 ---- if (self->ohead > self->osize - GUI_ALLOCCHUNK/2) sys_trytogetmoreguibuf(self,self->osize + GUI_ALLOCCHUNK); ! int msglen = vsnprintf(self->obuf+self->ohead, self->osize-self->ohead, fmt, ap); va_end(ap); if(msglen < 0) { *************** *** 498,504 ****
static int sys_flushtogui(t_socketreceiver *self) { ! int writesize = self->ohead-self->otail, nwrote = 0; if (!writesize) return 0; ! nwrote = send(self->fd, self->obuf+self->otail, writesize, 0); if (nwrote < 0) { perror("pd-to-gui socket"); --- 491,497 ----
static int sys_flushtogui(t_socketreceiver *self) { ! int writesize = self->ohead-self->otail; if (!writesize) return 0; ! int nwrote = send(self->fd, self->obuf+self->otail, writesize, 0); if (nwrote < 0) { perror("pd-to-gui socket"); *************** *** 574,578 **** inbinbuf = binbuf_new(); sys_setsignals(); - sys_netreceive = netreceive_new(&s_,sys_guisetportnumber,0); // fprintf(stderr,"sys_netreceive=%p\n",sys_netreceive); --- 567,570 ---- *************** *** 581,585 **** // obj_connect(sys_netreceive,1,(t_text *)pd_new3("print right"),0); obj_connect(sys_netreceive,0,manager,0); - #if defined(__linux__) || defined(IRIX) /* now that we've spun off the child process we can promote our process's --- 573,576 ---- *************** *** 592,596 **** if (sys_hipriority) sys_setpriority(); setuid(getuid()); - return 0; } --- 583,586 ---- *************** *** 607,611 **** #if defined(__linux__) || defined(IRIX) #ifndef WATCHDOGTHREAD ! int pipe9[2], watchpid; if (pipe(pipe9) < 0) { setuid(getuid()); --- 597,601 ---- #if defined(__linux__) || defined(IRIX) #ifndef WATCHDOGTHREAD ! int pipe9[2]; if (pipe(pipe9) < 0) { setuid(getuid()); *************** *** 613,617 **** return 1; } ! watchpid = fork(); if (watchpid < 0) { setuid(getuid()); --- 603,607 ---- return 1; } ! int watchpid = fork(); if (watchpid < 0) { setuid(getuid()); *************** *** 636,641 **** close(pipe9[0]); sys_watchfd = pipe9[1]; ! /* We also have to start the ping loop in the GUI; ! this is done later when the socket is open. */ } #else --- 626,630 ---- close(pipe9[0]); sys_watchfd = pipe9[1]; ! /* We also have to start the ping loop in the GUI; this is done later when the socket is open. */ } #else *************** *** 652,666 **** struct sched_param param; int policy = SCHED_RR; - int err; param.sched_priority = 80; /* adjust 0 : 100 */ ! err = pthread_setschedparam(pthread_self(), policy, ¶m); if (err) post("warning: high priority scheduling failed\n"); } #endif /* __APPLE__ */ if (!sys_nogui) { ! /* here is where we start the pinging. */ #if defined(__linux__) || defined(IRIX) #ifndef WATCHDOGTHREAD ! if (sys_hipriority) sys_gui("pdtk_watchdog\n"); #endif #endif --- 641,654 ---- struct sched_param param; int policy = SCHED_RR; param.sched_priority = 80; /* adjust 0 : 100 */ ! int err = pthread_setschedparam(pthread_self(), policy, ¶m); if (err) post("warning: high priority scheduling failed\n"); } #endif /* __APPLE__ */ if (!sys_nogui) { ! /* here is where we start the pinging. */ #if defined(__linux__) || defined(IRIX) #ifndef WATCHDOGTHREAD ! if (sys_hipriority) sys_gui("pdtk_watchdog\n"); #endif #endif *************** *** 673,685 **** void sys_bail(int n) { static int reentered = 0; ! if (!reentered) { ! reentered = 1; ! fprintf(stderr, "closing audio...\n"); ! sys_close_audio(); ! fprintf(stderr, "closing MIDI...\n"); ! sys_close_midi(); ! fprintf(stderr, "... done.\n"); ! exit(n); ! } else _exit(1); }
--- 661,672 ---- void sys_bail(int n) { static int reentered = 0; ! if (reentered) _exit(1); ! reentered = 1; ! fprintf(stderr, "closing audio...\n"); ! sys_close_audio(); ! fprintf(stderr, "closing MIDI...\n"); ! sys_close_midi(); ! fprintf(stderr, "... done.\n"); ! exit(n); }
*************** *** 700,716 **** static int sys_start_watchdog_thread() { pthread_attr_t w_attr; - int status; main_pd_thread = pthread_self(); pthread_attr_init(&w_attr); pthread_attr_setschedpolicy(&w_attr, SCHED_FIFO); /* use rt scheduling */ ! status = pthread_create(&watchdog_id, &w_attr, (void*(*)(void*)) watchdog_thread, NULL); return status; /* what is this function supposed to return anyway? it tried returning void though declared as int */ }
#ifdef MSW ! int gettimeofday (struct timeval *tv, void* tz); #endif
! static t_int* watchdog_callback(t_int* dummy) { /* signal the condition */ pthread_cond_signal(&watchdog_cond); --- 687,702 ---- static int sys_start_watchdog_thread() { pthread_attr_t w_attr; main_pd_thread = pthread_self(); pthread_attr_init(&w_attr); pthread_attr_setschedpolicy(&w_attr, SCHED_FIFO); /* use rt scheduling */ ! int status = pthread_create(&watchdog_id, &w_attr, (void*(*)(void*)) watchdog_thread, NULL); return status; /* what is this function supposed to return anyway? it tried returning void though declared as int */ }
#ifdef MSW ! int gettimeofday (struct timeval *tv, void *tz); #endif
! static t_int* watchdog_callback(t_int *dummy) { /* signal the condition */ pthread_cond_signal(&watchdog_cond); *************** *** 724,728 **** */
! static void *watchdog_thread(void* dummy) { sys_set_priority(1); post("watchdog thread started"); --- 710,714 ---- */
! static void *watchdog_thread(void *dummy) { sys_set_priority(1); post("watchdog thread started");