Exemplo n.º 1
0
 def __init__(self, f=None, *args, **kw):
     self.args = args
     self.kw = kw
     self.f = f
     self._thread = None
     self.done = None
     self._abort = eventletutils.EventletEvent()
Exemplo n.º 2
0
 def test_event_clear_already_sent(self, mock_event):
     old_event = mock.Mock()
     new_event = mock.Mock()
     mock_event.side_effect = [old_event, new_event]
     event = eventletutils.EventletEvent()
     event.set()
     event.clear()
     self.assertEqual(1, old_event.send.call_count)
Exemplo n.º 3
0
    def test_event_no_timeout(self):
        event = eventletutils.EventletEvent()

        def thread_a():
            self.assertTrue(event.wait())

        a = greenthread.spawn(thread_a)

        with eventlet.timeout.Timeout(0.5, False):
            a.wait()
            self.fail('wait() timed out')
Exemplo n.º 4
0
    def test_event_race(self):
        event = eventletutils.EventletEvent()

        def thread_a():
            self.assertTrue(event.wait(2))

        a = greenthread.spawn(thread_a)

        def thread_b():
            eventlet.sleep(0.1)
            event.clear()
            event.set()
            a.wait()

        b = greenthread.spawn(thread_b)
        with eventlet.timeout.Timeout(0.5):
            b.wait()
Exemplo n.º 5
0
    def test_event_set_clear_timeout(self):
        event = eventletutils.EventletEvent()
        wakes = []

        def thread_func():
            result = event.wait(0.2)
            wakes.append(result)
            if len(wakes) == 1:
                self.assertTrue(result)
                event.clear()
            else:
                self.assertFalse(result)

        a = greenthread.spawn(thread_func)
        b = greenthread.spawn(thread_func)
        eventlet.sleep(0)  # start threads
        event.set()

        with eventlet.timeout.Timeout(0.3):
            a.wait()
            b.wait()
        self.assertFalse(event.is_set())
        self.assertEqual([True, False], wakes)