X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcontrib%2Flibqxt-2007-10-24%2Fsrc%2Fcore%2Fqxtsemaphore.cpp;fp=src%2Fcontrib%2Flibqxt-2007-10-24%2Fsrc%2Fcore%2Fqxtsemaphore.cpp;h=0000000000000000000000000000000000000000;hp=a7be0fdf43ee1fbf9dcf044fe1f5ea7425c93959;hb=140d8a132103d2fa9baf55036e09b165624de167;hpb=97d674034551438238c568e8b42efb08e1ba7354 diff --git a/src/contrib/libqxt-2007-10-24/src/core/qxtsemaphore.cpp b/src/contrib/libqxt-2007-10-24/src/core/qxtsemaphore.cpp deleted file mode 100644 index a7be0fdf..00000000 --- a/src/contrib/libqxt-2007-10-24/src/core/qxtsemaphore.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) Qxt Foundation. Some rights reserved. -** -** This file is part of the QxtCore module of the Qt eXTension library -** -** This library is free software; you can redistribute it and/or modify it -** under the terms of th Common Public License, version 1.0, as published by -** IBM. -** -** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY -** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY -** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR -** FITNESS FOR A PARTICULAR PURPOSE. -** -** You should have received a copy of the CPL along with this file. -** See the LICENSE file and the cpl1.0.txt file included with the source -** distribution for more information. If you did not receive a copy of the -** license, contact the Qxt Foundation. -** -** -** -****************************************************************************/ -#include "qxtsemaphore.h" - -/** -\class QxtSemaphore QxtSemaphore -\ingroup QxtCore -\brief system wide semaphore (former QxtSingleInstance) - - -\code - QxtSemaphore instance("com.mycompany.foobla.uniquestring"); - if(!instance.trylock()) - { - qDebug("already started") - } - -\endcode - -Note that the semaphore is autoaticly unlocked on destruction, but not on segfault,sigkill,etc...! -*/ - -#ifdef Q_WS_WIN -#include "Windows.h" - -class QxtSemaphorePrivate : public QxtPrivate -{ -public: - QString name; - unsigned sem_m; - void init() - { - sem_m=0; - } - - bool trylock() - { - sem_m = (unsigned ) CreateSemaphoreA ( NULL , 1 , 2 , qPrintable("Global\\"+name) ); - if (sem_m == 0 ) - return false; - return true; - } - bool unlock() - { - if (sem_m==0) - return false; - return CloseHandle((void *)sem_m); - } -}; - - - -#else - -#include -#include -#include - -class QxtSemaphorePrivate : public QxtPrivate -{ -public: - QString name; - sem_t* m_sem; - bool s_N; - void init() - { - s_N=false; - m_sem=NULL; - } - - bool trylock() - { - m_sem=sem_open(qPrintable(name), O_CREAT, S_IRUSR | S_IWUSR, 1); - if (m_sem==(sem_t*)(SEM_FAILED) || sem_trywait(m_sem)) - { - m_sem=NULL; - s_N=true; - return false; - } - s_N=false; - return true; - } - bool unlock() - { - if (m_sem==NULL) - return false; - if (!s_N) - { - sem_post(m_sem); - } - return (sem_close(m_sem)==0); - } -}; - -#endif - -QxtSemaphore::QxtSemaphore(QString uniqueID) -{ - qxt_d().name=uniqueID; - qxt_d().init(); -} - -QxtSemaphore::~QxtSemaphore() -{ - unlock(); -} - -bool QxtSemaphore::trylock() -{ - return qxt_d().trylock(); -} -bool QxtSemaphore::unlock() -{ - return qxt_d().unlock(); -}