示例#1
0
void HttpPoll::reset(bool clear)
{
	if(d->http.isActive())
		d->http.stop();
	if(clear)
		clearReadBuffer();
	clearWriteBuffer();
	d->out.resize(0);
	d->state = 0;
	d->closing = false;
	d->t->stop();
}
示例#2
0
void CBuffer_Delete(CBuffer* cb)
{
    assert(cb);

    lock(cb, true);

    clearText(cb, false);
    clearWriteBuffer(cb);
    clearIndex(cb);
    clearUsedNodes(cb);

    lock(cb, false);
    Sys_DestroyMutex(cb->mutex);
    cb->mutex = 0;
    free(cb);
}
示例#3
0
void UciEngine::makeMove(const Chess::Move& move)
{
	if (!m_ponderMove.isNull())
	{
		if (move == m_ponderMove)
			m_ponderState = PonderHit;

		m_ponderMove = Chess::Move();
		if (m_ponderState != PonderHit)
		{
			m_moveStrings.truncate(m_moveStrings.lastIndexOf(' '));
			if (isReady())
			{
				m_ignoreThinking = true;
				if (stopThinking())
					ping(false);
			}
			else
			{
				// Cancel sending the "go ponder" message
				clearWriteBuffer();
				m_rePing = true;
			}
		}
	}

	if (m_ponderState != PonderHit)
	{
		m_ponderState = NotPondering;
		m_moveStrings += " " + board()->moveString(move, Chess::Board::LongAlgebraic);
		if (m_ignoreThinking)
			m_bmBuffer << positionString() << "isready";
		else
			sendPosition();
	}
}