aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/arch/IArchMultithread.h
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2021-11-10 00:54:35 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2021-11-10 00:54:35 -0500
commit58fb7a0cee13d84170aac52f3f89d91888e1afe3 (patch)
tree1d6312ba15f9ece5a8031e5280dfb8b38be8dfa3 /src/lib/arch/IArchMultithread.h
parent28db84b46139c9bb2bbcac8c6cc56e71d1e35629 (diff)
parentbeb08eb751fa8e1f72042f263316ab5e5ddb596d (diff)
Update upstream source from tag 'upstream/2.4.0+dfsg'
Update to upstream version '2.4.0+dfsg' with Debian dir 4b6668cc08c7b0e56b1e1f7b4e89ecdb316182a0
Diffstat (limited to 'src/lib/arch/IArchMultithread.h')
-rw-r--r--src/lib/arch/IArchMultithread.h30
1 files changed, 11 insertions, 19 deletions
diff --git a/src/lib/arch/IArchMultithread.h b/src/lib/arch/IArchMultithread.h
index e8d358b..6a57694 100644
--- a/src/lib/arch/IArchMultithread.h
+++ b/src/lib/arch/IArchMultithread.h
@@ -2,11 +2,11 @@
* barrier -- mouse and keyboard sharing utility
* Copyright (C) 2012-2016 Symless Ltd.
* Copyright (C) 2002 Chris Schoeneman
- *
+ *
* This package is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* found in the file LICENSE that should have accompanied this file.
- *
+ *
* This package is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -19,8 +19,9 @@
#pragma once
#include "common/IInterface.h"
+#include <functional>
-/*!
+/*!
\class ArchCondImpl
\brief Internal condition variable data.
An architecture dependent type holding the necessary data for a
@@ -28,35 +29,35 @@ condition variable.
*/
class ArchCondImpl;
-/*!
+/*!
\var ArchCond
\brief Opaque condition variable type.
An opaque type representing a condition variable.
*/
typedef ArchCondImpl* ArchCond;
-/*!
+/*!
\class ArchMutexImpl
\brief Internal mutex data.
An architecture dependent type holding the necessary data for a mutex.
*/
class ArchMutexImpl;
-/*!
+/*!
\var ArchMutex
\brief Opaque mutex type.
An opaque type representing a mutex.
*/
typedef ArchMutexImpl* ArchMutex;
-/*!
+/*!
\class ArchThreadImpl
\brief Internal thread data.
An architecture dependent type holding the necessary data for a thread.
*/
class ArchThreadImpl;
-/*!
+/*!
\var ArchThread
\brief Opaque thread type.
An opaque type representing a thread.
@@ -71,7 +72,7 @@ barrier. Each architecture must implement this interface.
class IArchMultithread : public IInterface {
public:
//! Type of thread entry point
- typedef void* (*ThreadFunc)(void*);
+ typedef void (*ThreadFunc)(void*);
//! Type of thread identifier
typedef unsigned int ThreadID;
//! Types of signals
@@ -160,7 +161,7 @@ public:
Creates and starts a new thread, using \c func as the entry point
and passing it \c userData. The thread is an opaque data type.
*/
- virtual ArchThread newThread(ThreadFunc func, void* userData) = 0;
+ virtual ArchThread newThread(const std::function<void()>& func) = 0;
//! Get a reference to the calling thread
/*!
@@ -235,15 +236,6 @@ public:
*/
virtual bool isExitedThread(ArchThread thread) = 0;
- //! Returns the exit code of a thread
- /*!
- Waits indefinitely for \c thread to exit (if it hasn't yet) then
- returns the thread's exit code.
-
- (Cancellation point)
- */
- virtual void* getResultOfThread(ArchThread thread) = 0;
-
//! Returns an ID for a thread
/*!
Returns some ID number for \c thread. This is for logging purposes.