/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt for Python project. ** ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 as published by the Free Software ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "bucket.h" #include #ifdef _WIN32 // _WIN32 is defined by all Windows 32 and 64 bit compilers, but not by others. #include #define SLEEP(x) Sleep(x) #else #include #define SLEEP(x) usleep(x) #endif using namespace std; Bucket::Bucket() : m_locked(false) { } void Bucket::push(int x) { m_data.push_back(x); } int Bucket::pop(void) { int x = 0; if (m_data.size() > 0) { x = m_data.front(); m_data.pop_front(); } return x; } bool Bucket::empty() { return m_data.empty(); } void Bucket::lock() { m_locked = true; while (m_locked) { SLEEP(300); } } void Bucket::unlock() { m_locked = false; } bool Bucket::virtualBlockerMethod() { lock(); // The return value was added just for diversity sake. return true; }