[PD-cvs] pd/src m_sched.c,1.5.4.35,1.5.4.36
Tim Blechmann
timblech at users.sourceforge.net
Thu Jun 16 14:40:55 CEST 2005
- Previous message: [PD-cvs] externals/zexy/src multiplex.c,1.3,1.4
- Next message: [PD-cvs] externals/iem/iemmatrix/src iemmatrix.dsp, NONE, 1.1 iemmatrix.dsw, NONE, 1.1 makefile_win, NONE, 1.1 iemmatrix.h, 1.8, 1.9 mtx_gauss.c, 1.1, 1.2 mtx_mul.c, 1.2, 1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12251
Modified Files:
Tag: devel_0_38
m_sched.c
Log Message:
fixed idle callback bug
Index: m_sched.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_sched.c,v
retrieving revision 1.5.4.35
retrieving revision 1.5.4.36
diff -C2 -d -r1.5.4.35 -r1.5.4.36
*** m_sched.c 18 May 2005 09:15:18 -0000 1.5.4.35
--- m_sched.c 16 Jun 2005 12:40:52 -0000 1.5.4.36
***************
*** 378,390 ****
(*c->c_fn)(c->c_owner);
if (sys_quit)
! return;
}
}
-
/* take the scheduler forward one DSP tick, also handling clock timeouts */
void sched_tick(double next_sys_time)
{
- run_clock_callbacks(next_sys_time); /* tb: is the dsp tick the right place for this? */
sys_time = next_sys_time;
sched_diddsp++; /* rethink: how to get rid of this stupid histogram??? */
--- 378,388 ----
(*c->c_fn)(c->c_owner);
if (sys_quit)
! break;
}
}
/* take the scheduler forward one DSP tick, also handling clock timeouts */
void sched_tick(double next_sys_time)
{
sys_time = next_sys_time;
sched_diddsp++; /* rethink: how to get rid of this stupid histogram??? */
***************
*** 425,433 ****
/* tb: adapt sleepgrain with advance */
sys_update_sleepgrain();
!
sys_initmidiqueue();
- callback_fifo = fifo_init(); /* tb: initialize fifo for idle callbacks */
-
while (!sys_quit)
{
--- 423,429 ----
/* tb: adapt sleepgrain with advance */
sys_update_sleepgrain();
!
sys_initmidiqueue();
while (!sys_quit)
{
***************
*** 475,479 ****
--- 471,478 ----
if (timeforward != SENDDACS_NO)
+ {
sched_tick(sys_time + sys_time_per_dsp_tick);
+ run_clock_callbacks(sys_time);
+ }
if (timeforward == SENDDACS_YES)
didsomething = 1;
***************
*** 484,488 ****
didsomething = 1;
}
!
/* test for idle; if so, do graphics updates. */
if (!didsomething)
--- 483,488 ----
didsomething = 1;
}
!
!
/* test for idle; if so, do graphics updates. */
if (!didsomething)
***************
*** 520,523 ****
--- 520,525 ----
}
+ run_clock_callbacks(sys_time);
+
/* test for idle; if so, do graphics updates. */
if (!didsomething)
***************
*** 643,647 ****
ret = pthread_cond_timedwait(&sys_cond, &sys_mutex, &timeout);
!
return ret;
}
--- 645,649 ----
ret = pthread_cond_timedwait(&sys_cond, &sys_mutex, &timeout);
!
return ret;
}
***************
*** 703,706 ****
--- 705,713 ----
+ void sys_init_idle_callbacks(void)
+ {
+ callback_fifo = fifo_init(); /* tb: initialize fifo for idle callbacks */
+ }
+
static t_sched_callback *ringbuffer_head;
***************
*** 713,720 ****
/* append idle callback to ringbuffer */
! new_callback = (t_sched_callback*) fifo_get(callback_fifo);
! while (new_callback != NULL)
{
t_sched_callback * next;
if (ringbuffer_head == NULL)
{
--- 720,729 ----
/* append idle callback to ringbuffer */
! while (new_callback = (t_sched_callback*) fifo_get(callback_fifo))
{
t_sched_callback * next;
+
+ /* set the next field to NULL ... it might be set in the fifo */
+ new_callback->next = NULL;
if (ringbuffer_head == NULL)
{
***************
*** 728,732 ****
next->next = new_callback;
}
- new_callback = (t_sched_callback*) fifo_get(callback_fifo);
}
--- 737,740 ----
***************
*** 775,779 ****
/* sleep for the rest of the time */
! if(remain > 0) sys_microsleep(remain);
}
else
--- 783,788 ----
/* sleep for the rest of the time */
! if(remain > 0)
! sys_microsleep(remain);
}
else
***************
*** 782,783 ****
--- 791,803 ----
/* } tb */
+ void sys_setscheduler(int scheduler)
+ {
+ sys_keepsched = 0;
+ sys_callbackscheduler = scheduler;
+ return;
+ }
+
+ int sys_getscheduler(void)
+ {
+ return sys_callbackscheduler;
+ }
- Previous message: [PD-cvs] externals/zexy/src multiplex.c,1.3,1.4
- Next message: [PD-cvs] externals/iem/iemmatrix/src iemmatrix.dsp, NONE, 1.1 iemmatrix.dsw, NONE, 1.1 makefile_win, NONE, 1.1 iemmatrix.h, 1.8, 1.9 mtx_gauss.c, 1.1, 1.2 mtx_mul.c, 1.2, 1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Pd-cvs
mailing list