do reinit pass */
| 125 | int rireturn(CSOUND *csound, void *p); |
| 126 | /* do reinit pass */ |
| 127 | static int reinit_pass(CSOUND *csound, INSDS *ip, OPDS *ids) { |
| 128 | int error = 0; |
| 129 | if(csound->oparms->realtime) { |
| 130 | csoundLockMutex(csound->init_pass_threadlock); |
| 131 | } |
| 132 | csound->curip = ip; |
| 133 | csound->ids = ids; |
| 134 | csound->mode = 1; |
| 135 | while (error == 0 && (csound->ids = csound->ids->nxti) != NULL && |
| 136 | (csound->ids->iopadr != (SUBR) rireturn)){ |
| 137 | csound->op = csound->ids->optext->t.oentry->opname; |
| 138 | if (UNLIKELY(csound->oparms->odebug)) |
| 139 | csound->Message(csound, "reinit %s:\n", csound->op); |
| 140 | error = (*csound->ids->iopadr)(csound, csound->ids); |
| 141 | } |
| 142 | csound->mode = 0; |
| 143 | |
| 144 | ATOMIC_SET8(ip->actflg, 1); |
| 145 | csound->reinitflag = ip->reinitflag = 0; |
| 146 | if(csound->oparms->realtime) |
| 147 | csoundUnlockMutex(csound->init_pass_threadlock); |
| 148 | return error; |
| 149 | } |
| 150 | |
| 151 | |
| 152 | /* |
no test coverage detected