diff options
| author | Michele Calgaro <michele.calgaro@yahoo.it> | 2019-04-21 23:22:20 +0900 | 
|---|---|---|
| committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2019-04-21 23:22:20 +0900 | 
| commit | dba036816b279bc1539a9f3894fbc414665d2bce (patch) | |
| tree | 29e4bf00bafe515e7afdd02168d65a47a3f9fbc0 /tqtinterface/qt4/src/tools/tqsemaphore.cpp | |
| parent | 6f1b4f0c7505a049d992a33f6e409b7c75732d4b (diff) | |
| download | experimental-dba036816b279bc1539a9f3894fbc414665d2bce.tar.gz experimental-dba036816b279bc1539a9f3894fbc414665d2bce.zip | |
Removed unnecessary and/or TDE-unrelated code.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'tqtinterface/qt4/src/tools/tqsemaphore.cpp')
| -rw-r--r-- | tqtinterface/qt4/src/tools/tqsemaphore.cpp | 255 | 
1 files changed, 0 insertions, 255 deletions
| diff --git a/tqtinterface/qt4/src/tools/tqsemaphore.cpp b/tqtinterface/qt4/src/tools/tqsemaphore.cpp deleted file mode 100644 index 7f1eff9..0000000 --- a/tqtinterface/qt4/src/tools/tqsemaphore.cpp +++ /dev/null @@ -1,255 +0,0 @@ -/**************************************************************************** -** -** TQSemaphore class for Unix -** -** Created : 20010725 -** -** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. -** -** This file is part of the tools module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file.  Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#if defined(TQT_THREAD_SUPPORT) - -#include "tqsemaphore.h" -#include "tqmutex.h" -#include "tqwaitcondition.h" - - -/*! -    \class TQSemaphore tqsemaphore.h -    \threadsafe -    \brief The TQSemaphore class provides a robust integer semaphore. - -    \ingroup thread -    \ingroup environment - -    A TQSemaphore can be used to serialize thread execution, in a -    similar way to a TQMutex. A semaphore differs from a mutex, in -    that a semaphore can be accessed by more than one thread at a -    time. - -    For example, suppose we have an application that stores data in a -    large tree structure. The application creates 10 threads -    (commonly called a thread pool) to perform searches on the tree. -    When the application searches the tree for some piece of data, it -    uses one thread per base node to do the searching. A semaphore -    could be used to make sure that two threads don't try to search -    the same branch of the tree at the same time. - -    A non-computing example of a semaphore would be dining at a -    restuarant. A semaphore is initialized to have a maximum count -    equal to the number of chairs in the restuarant. As people -    arrive, they want a seat. As seats are filled, the semaphore is -    accessed, once per person. As people leave, the access is -    released, allowing more people to enter. If a party of 10 people -    want to be seated, but there are only 9 seats, those 10 people -    will wait, but a party of 4 people would be seated (taking the -    available seats to 5, making the party of 10 people wait longer). - -    When a semaphore is created it is given a number which is the -    maximum number of concurrent accesses it will permit. Accesses to -    the sempahore are gained using operator++() or operator+=(), and -    released with operator--() or operator-=(). The number of -    accesses allowed is retrieved with available(), and the total -    number with total(). Note that the incrementing functions will -    block if there aren't enough available accesses. Use tryAccess() -    if you want to acquire accesses without blocking. -*/ - - -class TQSemaphorePrivate { -public: -    TQSemaphorePrivate(int); - -    TQMutex mutex; -    TQWaitCondition cond; - -    int value, max; -}; - - -TQSemaphorePrivate::TQSemaphorePrivate(int m) -    : mutex(FALSE), value(0), max(m) -{ -} - - -/*! -    Creates a new semaphore. The semaphore can be concurrently -    accessed at most \a maxcount times. -*/ -TQSemaphore::TQSemaphore(int maxcount) -{ -    d = new TQSemaphorePrivate(maxcount); -} - - -/*! -    Destroys the semaphore. - -    \warning If you destroy a semaphore that has accesses in use the -    resultant behavior is undefined. -*/ -TQSemaphore::~TQSemaphore() -{ -    delete d; -} - - -/*! -    Postfix ++ operator. - -    Try to get access to the semaphore. If \l available() == 0, this -    call will block until it can get access, i.e. until available() \> -    0. -*/ -int TQSemaphore::operator++(int) -{ -    TQMutexLocker locker(&d->mutex); -    while (d->value >= d->max) -	d->cond.wait(locker.mutex()); - -    ++d->value; -    if (d->value > d->max) -	d->value = d->max; - -    return d->value; -} - - -/*! -    Postfix -- operator. - -    Release access of the semaphore. This wakes all threads waiting -    for access to the semaphore. -*/ -int TQSemaphore::operator--(int) -{ -    TQMutexLocker locker(&d->mutex); - -    --d->value; -    if (d->value < 0) -	d->value = 0; - -    d->cond.wakeAll(); - -    return d->value; -} - - -/*! -    Try to get access to the semaphore. If \l available() \< \a n, this -    call will block until it can get all the accesses it wants, i.e. -    until available() \>= \a n. -*/ -int TQSemaphore::operator+=(int n) -{ -    TQMutexLocker locker(&d->mutex); - -    if ( n < 0 || n > d->max ) { -#ifdef TQT_CHECK_RANGE -	qWarning( "TQSemaphore::operator+=: paramter %d out of range", n ); -#endif // TQT_CHECK_RANGE -	n = n < 0 ? 0 : d->max; -    } - -    while (d->value + n > d->max) -	d->cond.wait(locker.mutex()); - -    d->value += n; - -    return d->value; -} - - -/*! -    Release \a n accesses to the semaphore. -*/ -int TQSemaphore::operator-=(int n) -{ -    TQMutexLocker locker(&d->mutex); - -    if ( n < 0 || n > d->value ) { -#ifdef TQT_CHECK_RANGE -	qWarning( "TQSemaphore::operator-=: paramter %d out of range", n ); -#endif // TQT_CHECK_RANGE -	n = n < 0 ? 0 : d->value; -    } - -    d->value -= n; -    d->cond.wakeAll(); - -    return d->value; -} - - -/*! -    Returns the number of accesses currently available to the -    semaphore. -*/ -int TQSemaphore::available() const -{ -    TQMutexLocker locker(&d->mutex); -    return d->max - d->value; -} - - -/*! -    Returns the total number of accesses to the semaphore. -*/ -int TQSemaphore::total() const -{ -    TQMutexLocker locker(&d->mutex); -    return d->max; -} - - -/*! -    Try to get access to the semaphore. If \l available() \< \a n, this -    function will return FALSE immediately. If \l available() \>= \a n, -    this function will take \a n accesses and return TRUE. This -    function does \e not block. -*/ -bool TQSemaphore::tryAccess(int n) -{ -    TQMutexLocker locker(&d->mutex); - -    if (d->value + n > d->max) -	return FALSE; - -    d->value += n; - -    return TRUE; -} - -#endif // TQT_THREAD_SUPPORT | 
