Example #1
0
def long_poll_generator(box_events, uploaded_file, request):
    # pylint:disable=redefined-outer-name
    generator = box_events.generate_events_with_long_polling(stream_position=0)

    def long_poll():
        for event in generator:
            long_poll_thread.events.append(event)
            long_poll_thread.event_ready.set()
            if long_poll_thread.should_stop_polling:
                return
            long_poll_thread.consumed_events.wait()
            long_poll_thread.consumed_events.clear()

    long_poll_thread = Thread(target=long_poll)

    long_poll_thread.should_stop_polling = False
    long_poll_thread.events = []
    long_poll_thread.event_ready = Event()
    long_poll_thread.consumed_events = Event()
    long_poll_thread.start()

    def fin():
        long_poll_thread.should_stop_polling = True
        uploaded_file.delete()
        long_poll_thread.event_ready.wait()
        generator.close()
        long_poll_thread.join()

    request.addfinalizer(fin)

    return long_poll_thread
Example #2
0
def long_poll_generator(box_events, uploaded_file, request):
    # pylint:disable=redefined-outer-name
    generator = box_events.generate_events_with_long_polling(stream_position=0)

    def long_poll():
        for event in generator:
            long_poll_thread.events.append(event)
            long_poll_thread.event_ready.set()
            if long_poll_thread.should_stop_polling:
                return
            long_poll_thread.consumed_events.wait()
            long_poll_thread.consumed_events.clear()

    long_poll_thread = Thread(target=long_poll)

    long_poll_thread.should_stop_polling = False
    long_poll_thread.events = []
    long_poll_thread.event_ready = Event()
    long_poll_thread.consumed_events = Event()
    long_poll_thread.start()

    def fin():
        long_poll_thread.should_stop_polling = True
        uploaded_file.delete()
        long_poll_thread.event_ready.wait()
        generator.close()
        long_poll_thread.join()

    request.addfinalizer(fin)

    return long_poll_thread