Comment 7 for bug 1304244

Revision history for this message
Openstack Gerrit (openstack-gerrit) wrote : Fix merged to oslo-incubator (master)

Reviewed: https://review.openstack.org/87180
Committed: https://git.openstack.org/cgit/openstack/oslo-incubator/commit/?id=fdc88831e272dec25ed77a176e6bdfb9cddb6c3d
Submitter: Jenkins
Branch: master

commit fdc88831e272dec25ed77a176e6bdfb9cddb6c3d
Author: Mitsuru Kanabuchi <email address hidden>
Date: Thu Apr 17 11:31:46 2014 +0900

    Add graceful stop function to ThreadGroup.stop

    Currently ThreadGroup.stop() would stop both timers and threads
    immediately.
    However, heat-engine should stop timers before threads finished for
    the purpose of graceful shutdown.

    The graceful shutdown for Heat is "do process exit after stack
    processing finished". Heat implemented the stack processing as threads.
    We should wait its finishing for graceful shutdown's purpose.

    On the one hand, Heat is using timers.
    The timers have the function of make another job threads.
    It means, we should stop timers before waiting threads for preventing
    another thread occur by timers.

    From the above, the appropriate order of Heat's graceful shutdown is:

      * stop timers for preventing new thread occur
      * wait for all threads to be finished
      * process exit

    However, currently ThreadGroup class doesn't have the function of
    graceful stop. So I propose the function of graceful stop.

    Change-Id: Id575674af95ae7ad88c00a2ac5d629ab0d0a9b46
    Closes-bug: #1304244