=== modified file 'twisted/internet/task.py'
--- twisted/internet/task.py	2012-01-15 21:19:39 +0000
+++ twisted/internet/task.py	2012-09-03 13:37:05 +0000
@@ -638,6 +638,15 @@
             self._delayedCall = None
 
 
+    def running(self):
+        """
+        Check if this L{Cooperator} is currently running.
+
+        @return: C{True} if the L{Cooperator} is running, C{False} otherwise.
+        """
+        return (self._started and not self._stopped)
+
+
 
 _theCooperator = Cooperator()
 

=== modified file 'twisted/test/test_cooperator.py'
--- twisted/test/test_cooperator.py	2011-08-13 22:57:43 +0000
+++ twisted/test/test_cooperator.py	2012-09-03 13:45:38 +0000
@@ -285,6 +285,23 @@
         self.assertEqual(coop._delayedCall, calls[0])
 
 
+    def test_running(self):
+        """
+        Test if L{Cooperator.running} reports the correct status.
+        L{Cooperator.running} should report C{False} if the L{Cooperator}
+        has not been started or has been stopped.
+        """
+        c = task.Cooperator(started=False)
+        self.assertEqual(c.running(), False)
+
+        c.start()
+        self.assertEqual(c.running(), True)
+
+        c.stop()
+        self.assertEqual(c.running(), False)
+
+
+
 

=== added file 'twisted/topfiles/5937.feature'
--- twisted/topfiles/5937.feature	1970-01-01 00:00:00 +0000
+++ twisted/topfiles/5937.feature	2012-09-03 13:48:06 +0000
@@ -0,0 +1,1 @@
+Cooperator.running can be used to determin the current cooperator status.

