added signal possibility to threads

This commit is contained in:
maroy 2005-01-10 11:04:44 +00:00
parent 9adcedb8a4
commit 70a8e75020
3 changed files with 37 additions and 6 deletions

View file

@ -22,7 +22,7 @@
Author : $Author: maroy $ Author : $Author: maroy $
Version : $Revision: 1.1 $ Version : $Revision: 1.2 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/RunnableInterface.h,v $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/RunnableInterface.h,v $
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
@ -57,7 +57,7 @@ namespace Core {
* A Runnable object, that can form the main execution body of a thread. * A Runnable object, that can form the main execution body of a thread.
* *
* @author $Author: maroy $ * @author $Author: maroy $
* @version $Revision: 1.1 $ * @version $Revision: 1.2 $
* @see Thread * @see Thread
*/ */
class RunnableInterface class RunnableInterface
@ -77,6 +77,14 @@ class RunnableInterface
virtual void virtual void
run(void) throw () = 0; run(void) throw () = 0;
/**
* Send a signal to the runnable object.
*
* @param userData user-specific parameter for the signal.
*/
virtual void
signal(int userData) throw () = 0;
/** /**
* Signal the thread to stop, gracefully. * Signal the thread to stop, gracefully.
* This is just a call to signal the execution to stop, eventually. * This is just a call to signal the execution to stop, eventually.

View file

@ -22,7 +22,7 @@
Author : $Author: maroy $ Author : $Author: maroy $
Version : $Revision: 1.3 $ Version : $Revision: 1.4 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/Thread.h,v $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/Thread.h,v $
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
@ -62,7 +62,7 @@ namespace Core {
* A generic thread executor class. * A generic thread executor class.
* *
* @author $Author: maroy $ * @author $Author: maroy $
* @version $Revision: 1.3 $ * @version $Revision: 1.4 $
* @see RunnableInterface * @see RunnableInterface
*/ */
class Thread class Thread
@ -152,6 +152,18 @@ class Thread
*/ */
virtual void virtual void
join(void) throw (); join(void) throw ();
/**
* Send a signal to the runnable object inside this thread.
*
* @param userData user-specific parameter for the signal.
*/
virtual void
signal(int userData) throw ()
{
runnable->signal(userData);
}
}; };

View file

@ -22,7 +22,7 @@
Author : $Author: maroy $ Author : $Author: maroy $
Version : $Revision: 1.2 $ Version : $Revision: 1.3 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/TestRunnable.h,v $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/TestRunnable.h,v $
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
@ -59,7 +59,7 @@ namespace Core {
* A sample Runnable object, for testing purposes. * A sample Runnable object, for testing purposes.
* *
* @author $Author: maroy $ * @author $Author: maroy $
* @version $Revision: 1.2 $ * @version $Revision: 1.3 $
*/ */
class TestRunnable : public virtual RunnableInterface class TestRunnable : public virtual RunnableInterface
{ {
@ -128,6 +128,17 @@ class TestRunnable : public virtual RunnableInterface
shouldRun = false; shouldRun = false;
} }
/**
* Send a signal to this object.
* This currently simply does nothing.
*
* @param userData the user data for the signal.
*/
virtual void
signal(int userData) throw ()
{
}
/** /**
* Get the state of the object. * Get the state of the object.
*/ */