[PD-cvs] pd/src m_sched.c,1.5.4.35.2.21.2.8,1.5.4.35.2.21.2.9
Mathieu Bouchard
matju at users.sourceforge.net
Thu Jun 28 17:53:42 CEST 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8056
Modified Files:
Tag: desiredata
m_sched.c
Log Message:
cleanup
Index: m_sched.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_sched.c,v
retrieving revision 1.5.4.35.2.21.2.8
retrieving revision 1.5.4.35.2.21.2.9
diff -C2 -d -r1.5.4.35.2.21.2.8 -r1.5.4.35.2.21.2.9
*** m_sched.c 28 Jun 2007 09:01:50 -0000 1.5.4.35.2.21.2.8
--- m_sched.c 28 Jun 2007 15:53:39 -0000 1.5.4.35.2.21.2.9
***************
*** 86,92 ****
if (clock_setlist && clock_setlist->c_settime <= setticks) {
t_clock *cbefore, *cafter;
! for (cbefore = clock_setlist, cafter = clock_setlist->c_next;
! cbefore; cbefore = cafter, cafter = cbefore->c_next)
! {
if (!cafter || cafter->c_settime > setticks) {
cbefore->c_next = x;
--- 86,90 ----
if (clock_setlist && clock_setlist->c_settime <= setticks) {
t_clock *cbefore, *cafter;
! for (cbefore = clock_setlist, cafter = clock_setlist->c_next; cbefore; cbefore = cafter, cafter = cbefore->c_next) {
if (!cafter || cafter->c_settime > setticks) {
cbefore->c_next = x;
***************
*** 177,185 ****
#define NRESYNC 20
! typedef struct _resync
! {
int r_ntick;
int r_error;
! } t_resync;
static int oss_resyncphase = 0;
--- 175,182 ----
#define NRESYNC 20
! struct t_resync {
int r_ntick;
int r_error;
! };
static int oss_resyncphase = 0;
***************
*** 200,204 ****
void glob_audiostatus (void *dummy) {
int nresync, nresyncphase, i;
! nresync = (oss_nresync >= NRESYNC ? NRESYNC : oss_nresync);
nresyncphase = oss_resyncphase - 1;
post("audio I/O error history:");
--- 197,201 ----
void glob_audiostatus (void *dummy) {
int nresync, nresyncphase, i;
! nresync = oss_nresync >= NRESYNC ? NRESYNC : oss_nresync;
nresyncphase = oss_resyncphase - 1;
post("audio I/O error history:");
***************
*** 209,214 ****
errtype = oss_resync[nresyncphase].r_error;
if (errtype < 0 || errtype > 4) errtype = 0;
! post("%9.2f\t%s",
! (sched_diddsp - oss_resync[nresyncphase].r_ntick)
* ((double)sys_schedblocksize) / sys_dacsr, oss_errornames[errtype]);
nresyncphase--;
--- 206,210 ----
errtype = oss_resync[nresyncphase].r_error;
if (errtype < 0 || errtype > 4) errtype = 0;
! post("%9.2f\t%s", (sched_diddsp - oss_resync[nresyncphase].r_ntick)
* ((double)sys_schedblocksize) / sys_dacsr, oss_errornames[errtype]);
nresyncphase--;
***************
*** 237,241 ****
int inclip, outclip, indb, outdb;
static int sched_nextmeterpolltime, sched_nextpingtime;
-
/* if there's no GUI but we're running in "realtime", here is
where we arrange to ping the watchdog every 2 seconds. */
--- 233,236 ----
***************
*** 247,251 ****
}
#endif
-
if (sched_diddsp - sched_nextmeterpolltime < 0) return;
if (sched_diored && sched_diddsp-sched_dioredtime > 0) {
--- 242,245 ----
***************
*** 312,330 ****
outlet_setstacklim();
c->c_fn(c->c_owner);
! }
! while (clock_setlist && clock_setlist->c_settime <= next_sys_time);
}
}
!
! /* take the scheduler forward one DSP tick, also handling clock timeouts */
! void sched_tick(double next_sys_time)
! {
run_clock_callbacks(next_sys_time);
sys_time = next_sys_time;
sched_diddsp++; /* rethink: how to get rid of this stupid histogram??? */
dsp_tick();
-
-
/* rethink: should we really do all this midi messaging in the realtime thread ? */
sys_pollmidiqueue();
--- 306,319 ----
outlet_setstacklim();
c->c_fn(c->c_owner);
! } while (clock_setlist && clock_setlist->c_settime <= next_sys_time);
}
}
! /* take the scheduler forward one DSP tick, also handling clock timeouts */
! void sched_tick(double next_sys_time) {
run_clock_callbacks(next_sys_time);
sys_time = next_sys_time;
sched_diddsp++; /* rethink: how to get rid of this stupid histogram??? */
dsp_tick();
/* rethink: should we really do all this midi messaging in the realtime thread ? */
sys_pollmidiqueue();
***************
*** 405,426 ****
}
else /* tb: scheduler for callback-based dsp scheduling */
! while(sys_keepsched)
! {
/* tb: allow the audio callback to run */
sys_unlock();
sys_microsleep(sys_sleepgrain);
sys_lock();
-
sys_pollmidiqueue();
sys_setmiditimediff(0, 1e-6 * sys_schedadvance);
! if (sys_pollgui())
! continue;
/* do graphics updates and run idle callbacks */
sched_pollformeters();
-
}
sys_keepsched = 1;
}
-
sys_close_audio();
sys_unlock();
--- 394,410 ----
}
else /* tb: scheduler for callback-based dsp scheduling */
! while(sys_keepsched) {
/* tb: allow the audio callback to run */
sys_unlock();
sys_microsleep(sys_sleepgrain);
sys_lock();
sys_pollmidiqueue();
sys_setmiditimediff(0, 1e-6 * sys_schedadvance);
! if (sys_pollgui()) continue;
/* do graphics updates and run idle callbacks */
sched_pollformeters();
}
sys_keepsched = 1;
}
sys_close_audio();
sys_unlock();
***************
*** 428,432 ****
}
-
/* ------------ thread locking ------------------- */
/* added by Thomas Grill */
--- 412,415 ----
***************
*** 466,470 ****
int sys_timedlock(int microsec) {
struct timespec timeout;
- int ret;
struct timeval now;
/* timedlock seems to have a resolution of 1ms */
--- 449,452 ----
***************
*** 477,481 ****
timeout.tv_nsec -= 1e9;
}
! ret = pthread_mutex_timedlock(&sys_mutex, &timeout);
if (ret) post("timeout, %d", ret);
return ret;
--- 459,463 ----
timeout.tv_nsec -= 1e9;
}
! int ret = pthread_mutex_timedlock(&sys_mutex, &timeout);
if (ret) post("timeout, %d", ret);
return ret;
***************
*** 485,489 ****
int sys_timedlock(int microsec) {
struct timespec timeout;
- int ret;
struct timeval now;
if (sys_trylock() == 0) return 0;
--- 467,470 ----
***************
*** 499,504 ****
again before waiting for the signal */
if (sys_trylock() == 0) return 0;
! ret = pthread_cond_timedwait(&sys_cond, &sys_mutex, &timeout);
! return ret;
}
#endif
--- 480,484 ----
again before waiting for the signal */
if (sys_trylock() == 0) return 0;
! return pthread_cond_timedwait(&sys_cond, &sys_mutex, &timeout);
}
#endif
***************
*** 555,559 ****
extern "C" void run_all_idle_callbacks () {
! t_sched_callback * new_callback;
/* append idle callback to ringbuffer */
while ((new_callback = (t_sched_callback*) fifo_get(callback_fifo))) {
--- 535,539 ----
extern "C" void run_all_idle_callbacks () {
! t_sched_callback *new_callback;
/* append idle callback to ringbuffer */
while ((new_callback = (t_sched_callback*) fifo_get(callback_fifo))) {
More information about the Pd-cvs
mailing list