)]}'
{"nova/tests/test_libvirt.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"fc7645b3e3a121062831f914918742ed0ee046be","unresolved":false,"context_lines":[{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        wait2 \u003d eventlet.event.Event()"},{"line_number":504,"context_line":"        done2 \u003d eventlet.event.Event()"},{"line_number":505,"context_line":"        sig2 \u003d eventlet.event.Event()"},{"line_number":506,"context_line":"        thr2 \u003d eventlet.spawn(backend.image(\u0027instance\u0027, \u0027name\u0027).cache,"},{"line_number":507,"context_line":"                _concurrency, \u0027fname\u0027, None,"},{"line_number":508,"context_line":"                signal\u003dsig2, wait\u003dwait2, done\u003ddone2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F47k%3D","line":505,"updated":"2012-12-10 17:40:18.000000000","message":"appear to not be using this. See below.","commit_id":"87ced20aff04b062d3b5ec46124a9a6d154e3690"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"1046cfc1752088e7a8e45fa234dd699c813f3278","unresolved":false,"context_lines":[{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        wait2 \u003d eventlet.event.Event()"},{"line_number":504,"context_line":"        done2 \u003d eventlet.event.Event()"},{"line_number":505,"context_line":"        sig2 \u003d eventlet.event.Event()"},{"line_number":506,"context_line":"        thr2 \u003d eventlet.spawn(backend.image(\u0027instance\u0027, \u0027name\u0027).cache,"},{"line_number":507,"context_line":"                _concurrency, \u0027fname\u0027, None,"},{"line_number":508,"context_line":"                signal\u003dsig2, wait\u003dwait2, done\u003ddone2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F47c%3D","line":505,"in_reply_to":"AAAAMX%2F%2F47k%3D","updated":"2012-12-10 17:45:23.000000000","message":"I have added this so that I do not need two different _concurrency functions. Basically an event that does a send that is useless here, but needed in the other test.","commit_id":"87ced20aff04b062d3b5ec46124a9a6d154e3690"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"fc7645b3e3a121062831f914918742ed0ee046be","unresolved":false,"context_lines":[{"line_number":542,"context_line":"                signal\u003dsig2, wait\u003dwait2, done\u003ddone2)"},{"line_number":543,"context_line":"        eventlet.sleep(0)"},{"line_number":544,"context_line":"        # Wait for thread 2 to start."},{"line_number":545,"context_line":"        sig2.wait()"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        wait2.send()"},{"line_number":548,"context_line":"        eventlet.sleep(0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F47o%3D","line":545,"updated":"2012-12-10 17:40:18.000000000","message":"shouldn\u0027t this wait be in the test above as well?","commit_id":"87ced20aff04b062d3b5ec46124a9a6d154e3690"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"1046cfc1752088e7a8e45fa234dd699c813f3278","unresolved":false,"context_lines":[{"line_number":542,"context_line":"                signal\u003dsig2, wait\u003dwait2, done\u003ddone2)"},{"line_number":543,"context_line":"        eventlet.sleep(0)"},{"line_number":544,"context_line":"        # Wait for thread 2 to start."},{"line_number":545,"context_line":"        sig2.wait()"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        wait2.send()"},{"line_number":548,"context_line":"        eventlet.sleep(0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMX%2F%2F47Q%3D","line":545,"in_reply_to":"AAAAMX%2F%2F47o%3D","updated":"2012-12-10 17:45:23.000000000","message":"No, in the test above we are checking that the two calls to _concurrency happen sequentially because the \u0027fname\u0027 is the same. We check this in the other test by forcing thread1 to run first which allows it to enter its _concurrency call then wait. Once thread one is in that call thread2 cannot enter its call to _concurrency until thread1 completes.\n\nIn this test we want to check that both calls to _concurrency run in parallel. To do this we force thread one to enter the call and wait then we force thread2 to enter the call and wait.","commit_id":"87ced20aff04b062d3b5ec46124a9a6d154e3690"}]}
