void parentSigalarm(int signo)
{
	if(readCounter()>=maxCount)
		kill_exit();
	if(readCounter() % 2)
		kill(daughterPID,SIGALRM);
	else
		kill(sonPID,SIGALRM);
}
Ejemplo n.º 2
0
qint64 QAudioInterfaceBuffer::bytesAvailable()
{
    m_mutex.lock();
    int count = writeCounter() - readCounter();
    m_mutex.unlock();
    if (count >= 0)
        return count;
    return 0;
}
Ejemplo n.º 3
0
qint64 QAudioInterfaceBuffer::writeData(const char *data, qint64 len)
{
    if (m_size <= 0 || len <= 0) {
        return 0;
    }

    m_mutex.lock();
    int count = len;
    const char *pdata = data;
    int increment = 0;

#if QT_DEBUG_SOUNDBACKEND
    qDebug() << QThread::currentThreadId() << (quint64)m_elapsed.elapsed() <<
                "wr:" << len << "+" << (writeCounter() - readCounter());
#endif
    while (count > 0) {
        bool wrap = (m_writePos + count) >= m_size;
        if (wrap) {
            int block = m_size - m_writePos;
            memcpy(m_buffer + m_writePos, pdata, block);
            increment = block;
            count -= block;
            pdata += block;
            m_writeWrap++;
            m_writePos = 0;
        } else {
            memcpy(m_buffer + m_writePos, pdata, count);
            increment = count;
            count -= count;
            pdata += count;
            m_writePos = (m_writePos + increment) % m_size;
        }
    }

    m_mutex.unlock();
    return len;
}
int incrementFile()
{
	return writeCounter(addOneTotInt(readCounter()));
}