Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use annotated work group in worker pool #37

Closed
plastikfan opened this issue Aug 25, 2023 · 1 comment · Fixed by #38
Closed

use annotated work group in worker pool #37

plastikfan opened this issue Aug 25, 2023 · 1 comment · Fixed by #38
Assignees
Labels
refactor Refactor code

Comments

@plastikfan
Copy link
Contributor

No description provided.

@plastikfan plastikfan added the refactor Refactor code label Aug 25, 2023
@plastikfan plastikfan self-assigned this Aug 25, 2023
@plastikfan plastikfan linked a pull request Aug 25, 2023 that will close this issue
@plastikfan
Copy link
Contributor Author

plastikfan commented Aug 25, 2023

An example successful run of worker pool with annotated work group

[1692978194] Async Suite - 1/5 specs - 7 procs SSSS
------------------------------
• [2.796 seconds]
WorkerPool when given: a stream of jobs and: Stopped 🧪 should: receive and process all
/home/plastikfan/dev/github/go/snivilised/lorax/async/worker-pool_test.go:155

  Captured StdOut/StdErr Output >>
                🟪🟪🟪 [[ WaitGroupAssister.Add ]] - name: '✨ producer' (delta: '1', count: '1') (running: '✨ producer')
                🟪🟪🟪 [[ WaitGroupAssister.Add ]] - name: '🧊 worker pool' (delta: '1', count: '2') (running: '✨ producer/🧊 worker pool')
                🟪🟪🟪 [[ WaitGroupAssister.Add ]] - name: '💠 consumer' (delta: '1', count: '3') (running: '✨ producer/🧊 worker pool/💠 consumer')
                🟤🟤🟤 [[ WaitGroupAssister.Wait ]] - name: '👾 test-main' (count: '3') (running: '✨ producer/🧊 worker pool/💠 consumer')
                >>> 💤 StopAfter - Sleeping before requesting stop (200ms) ...
  >>>> ✨ producer.run ...(ctx:&{Context:context.Background.WithCancel.WithValue(type string, val <not Stringer>) ProgressReporterManager:0xc000013a10 cancel:0x4e56c0 suite:0xc00011c000})
  <<<< 💠 consumer.run ...(ctx:&{Context:context.Background.WithCancel.WithValue(type string, val <not Stringer>) ProgressReporterManager:0xc000013a10 cancel:0x4e56c0 suite:0xc00011c000})
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:🦄 pegasus}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:🦄 pegasus}'
  ===> 🧊 WorkerPool.run ...(ctx:&{Context:context.Background.WithCancel.WithValue(type string, val <not Stringer>) ProgressReporterManager:0xc000013a10 cancel:0x4e56c0 suite:0xc00011c000})
  ===> 🧊 (#workers: '0') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.spawned new worker: '(❤️)WORKER-ID-1:00cec252-bb46-452d-851e-7f336ce658d6' 🎀🎀🎀
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:a53f15e5-5dae-4f73-9d3f-142b3889d00d) [Seq: 1]
        ---> 🚀 worker.run((❤️)WORKER-ID-1:00cec252-bb46-452d-851e-7f336ce658d6) ...(ctx:&{Context:context.Background.WithCancel.WithValue(type string, val <not Stringer>) ProgressReporterManager:0xc000013a10 cancel:0x4e56c0 suite:0xc00011c000})
        ---> 🚀 worker.run((❤️)WORKER-ID-1:00cec252-bb46-452d-851e-7f336ce658d6)(input:'{🦄 pegasus}')
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:🧙 gandalf}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:🧙 gandalf}'
  ===> 🧊 (#workers: '1') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.spawned new worker: '(💙)WORKER-ID-2:a5ca9131-45ed-4fae-8960-1d3046e976b0' 🎀🎀🎀
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:5f618d17-8aba-49d1-97c6-38baf594840f) [Seq: 2]
        ---> 🚀 worker.run((💙)WORKER-ID-2:a5ca9131-45ed-4fae-8960-1d3046e976b0) ...(ctx:&{Context:context.Background.WithCancel.WithValue(type string, val <not Stringer>) ProgressReporterManager:0xc000013a10 cancel:0x4e56c0 suite:0xc00011c000})
        ---> 🚀 worker.run((💙)WORKER-ID-2:a5ca9131-45ed-4fae-8960-1d3046e976b0)(input:'{🧙 gandalf}')
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:💀 skeletor}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:💀 skeletor}'
  ===> 🧊 (#workers: '2') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.spawned new worker: '(💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8' 🎀🎀🎀
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:eb9b42b3-b9ae-453d-883d-560f9721f183) [Seq: 3]
        ---> 🚀 worker.run((💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8) ...(ctx:&{Context:context.Background.WithCancel.WithValue(type string, val <not Stringer>) ProgressReporterManager:0xc000013a10 cancel:0x4e56c0 suite:0xc00011c000})
        ---> 🚀 worker.run((💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8)(input:'{💀 skeletor}')
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:😺 garfield}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:😺 garfield}'
  ===> 🧊 (#workers: '3') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.spawned new worker: '(💜)WORKER-ID-4:c97b73ac-6ffd-4fbe-8ceb-c839809cbbfb' 🎀🎀🎀
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:2098fa9d-b2e2-49f2-aa7e-9982a9a6dc4b) [Seq: 4]
        ---> 🚀 worker.run((💜)WORKER-ID-4:c97b73ac-6ffd-4fbe-8ceb-c839809cbbfb) ...(ctx:&{Context:context.Background.WithCancel.WithValue(type string, val <not Stringer>) ProgressReporterManager:0xc000013a10 cancel:0x4e56c0 suite:0xc00011c000})
        ---> 🚀 worker.run((💜)WORKER-ID-4:c97b73ac-6ffd-4fbe-8ceb-c839809cbbfb)(input:'{😺 garfield}')
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:🤖 rusty}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:🤖 rusty}'
  ===> 🧊 (#workers: '4') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.spawned new worker: '(💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238' 🎀🎀🎀
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:201fac25-f8fb-483b-a092-c5d611b2471d) [Seq: 5]
        ---> 🚀 worker.run((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238) ...(ctx:&{Context:context.Background.WithCancel.WithValue(type string, val <not Stringer>) ProgressReporterManager:0xc000013a10 cancel:0x4e56c0 suite:0xc00011c000})
        ---> 🚀 worker.run((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238)(input:'{🤖 rusty}')
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:🧛‍♀️ vampire}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:🧛‍♀️ vampire}'
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:a3ec182c-c66b-4e19-872b-b689a37f9036) [Seq: 6]
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:🦄 pegasus}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:🦄 pegasus}'
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:385a05c0-97cd-4810-aaa5-025d184c90dc) [Seq: 7]
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:🤖 rusty}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:🤖 rusty}'
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:e683866b-081f-4a15-8e9c-3e0c735a7cf3) [Seq: 8]
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:💀 skeletor}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:💀 skeletor}'
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:db8ded5f-d507-4555-9ce2-1e332a3ba2f1) [Seq: 9]
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:👹 ogre}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:👹 ogre}'
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:5733a11c-104b-4b6f-a5f9-9cfb1d973777) [Seq: 10]
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:👾 xenomorph}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:👾 xenomorph}'
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:👹 ogre}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:👹 ogre}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:👺 gobby}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:👺 gobby}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:💩 poo}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:💩 poo}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:🐉 smaug}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:🐉 smaug}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:😺 garfield}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:😺 garfield}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:🐉 smaug}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:🐉 smaug}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:😺 garfield}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:😺 garfield}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:🐉 smaug}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:🐉 smaug}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:💀 skeletor}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:💀 skeletor}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:💀 skeletor}'
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:💀 skeletor}'
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:👽 paul}'
        ---> 🚀 worker.run((💙)WORKER-ID-2:a5ca9131-45ed-4fae-8960-1d3046e976b0)(input:'{🧛‍♀️ vampire}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:617ad35c-185c-4679-9648-a9dd86c3cfc8) [Seq: 11]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:👽 paul}'
  <<<< 💠 consumer.run - new result arrived(#1): '                      ---> 🍉🍉🍉 [Seq: 2] Hello: '🧙 gandalf''
  >>>> ✨ producer.run - default (running: true) ...
  >>>> ✨ producer.item, 🟠 waiting to post item: '{Recipient:👽 paul}'
  >>>> 🧲 producer terminating ...
        ---> 🚀 worker.run((💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8)(input:'{🦄 pegasus}')
  <<<< 💠 consumer.run - new result arrived(#2): '                      ---> 🍉🍉🍉 [Seq: 3] Hello: '💀 skeletor''
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:3ef3c798-88e0-4544-b558-1d7e4384dc8b) [Seq: 12]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  >>>> ✨ producer.item, 🟢 posted item: '{Recipient:👽 paul}'
  >>>> ✨ producer.run - termination detected (running: false)
                🔷🔷🔷 [[ WaitGroupAssister.Done ]] - name: '✨ producer' (count: '2') (running: '💠 consumer/🧊 worker pool')
  >>>> producer.run - finished (QUIT). ✨✨✨
                >>> StopAfter - 🍧🍧🍧 stop submitted.
        ---> 🚀 worker.run((❤️)WORKER-ID-1:00cec252-bb46-452d-851e-7f336ce658d6)(input:'{🤖 rusty}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:e128ec1a-2d19-4697-a655-31edf2aa1c02) [Seq: 13]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#3): '                      ---> 🍉🍉🍉 [Seq: 1] Hello: '🦄 pegasus''
        ---> 🚀 worker.run((💜)WORKER-ID-4:c97b73ac-6ffd-4fbe-8ceb-c839809cbbfb)(input:'{💀 skeletor}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:5c713574-da19-47a6-bed2-dbb704e59a53) [Seq: 14]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#4): '                      ---> 🍉🍉🍉 [Seq: 4] Hello: '😺 garfield''
        ---> 🚀 worker.run((💙)WORKER-ID-2:a5ca9131-45ed-4fae-8960-1d3046e976b0)(input:'{👹 ogre}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:b7e5eb2f-5f39-4c3d-9c62-d1f0859111e7) [Seq: 15]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#5): '                      ---> 🍉🍉🍉 [Seq: 6] Hello: '🧛‍♀️ vampire''
        ---> 🚀 worker.run((❤️)WORKER-ID-1:00cec252-bb46-452d-851e-7f336ce658d6)(input:'{👾 xenomorph}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:3fe308b6-eb34-4d4e-89f5-71d5595fd4e7) [Seq: 16]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#6): '                      ---> 🍉🍉🍉 [Seq: 8] Hello: '🤖 rusty''
        ---> 🚀 worker.run((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238)(input:'{👹 ogre}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:cab434ba-17d3-40e0-899a-014a3c4e5a72) [Seq: 17]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#7): '                      ---> 🍉🍉🍉 [Seq: 5] Hello: '🤖 rusty''
        ---> 🚀 worker.run((💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8)(input:'{👺 gobby}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:534ad0c2-7f58-4095-841a-c5ef0d443684) [Seq: 18]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#8): '                      ---> 🍉🍉🍉 [Seq: 7] Hello: '🦄 pegasus''
        ---> 🚀 worker.run((💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8)(input:'{💩 poo}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:e8aaae7a-ad00-451d-bee3-7a8956d1fd02) [Seq: 19]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#9): '                      ---> 🍉🍉🍉 [Seq: 13] Hello: '👺 gobby''
        ---> 🚀 worker.run((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238)(input:'{🐉 smaug}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:0ebc02b5-3c34-48a7-b696-e3ae9eed5a37) [Seq: 20]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#10): '                     ---> 🍉🍉🍉 [Seq: 12] Hello: '👹 ogre''
        ---> 🚀 worker.run((💙)WORKER-ID-2:a5ca9131-45ed-4fae-8960-1d3046e976b0)(input:'{😺 garfield}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:1e27ad01-a53b-4856-b017-c3f029e54377) [Seq: 21]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#11): '                     ---> 🍉🍉🍉 [Seq: 10] Hello: '👹 ogre''
        ---> 🚀 worker.run((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238)(input:'{🐉 smaug}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:f160cacb-3501-4b31-8dc2-0ea0abc54503) [Seq: 22]
  ===> 🧊 (#workers: '5') WorkerPool.run - new job received
  <<<< 💠 consumer.run - new result arrived(#12): '                     ---> 🍉🍉🍉 [Seq: 15] Hello: '🐉 smaug''
        ---> 🚀 worker.run((💜)WORKER-ID-4:c97b73ac-6ffd-4fbe-8ceb-c839809cbbfb)(input:'{😺 garfield}')
  ===> 🧊 WorkerPool.run - forwarded job 🧿🧿🧿(JOB-ID:7d143aa2-16d9-4d23-8372-ffd011fc9316) [Seq: 23]
  ===> 🚀 WorkerPool.run(source jobs chan closed) 🟥🟥🟥
  !!!! 🧊 WorkerPool.drain - waiting for remaining workers: 5 (#GRs: 18); 🧊🧊🧊
  <<<< 💠 consumer.run - new result arrived(#13): '                     ---> 🍉🍉🍉 [Seq: 9] Hello: '💀 skeletor''
        ---> 🚀 worker.run((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238)(input:'{🐉 smaug}')
  <<<< 💠 consumer.run - new result arrived(#14): '                     ---> 🍉🍉🍉 [Seq: 17] Hello: '🐉 smaug''
        ---> 🚀 worker.run((💜)WORKER-ID-4:c97b73ac-6ffd-4fbe-8ceb-c839809cbbfb)(input:'{💀 skeletor}')
  <<<< 💠 consumer.run - new result arrived(#15): '                     ---> 🍉🍉🍉 [Seq: 18] Hello: '😺 garfield''
        ---> 🚀 worker.run((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238)(input:'{💀 skeletor}')
  <<<< 💠 consumer.run - new result arrived(#16): '                     ---> 🍉🍉🍉 [Seq: 19] Hello: '🐉 smaug''
        ---> 🚀 worker.run((💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8)(input:'{👽 paul}')
  <<<< 💠 consumer.run - new result arrived(#17): '                     ---> 🍉🍉🍉 [Seq: 14] Hello: '💩 poo''
        ---> 🚀 worker.run((❤️)WORKER-ID-1:00cec252-bb46-452d-851e-7f336ce658d6)(input:'{👽 paul}')
  <<<< 💠 consumer.run - new result arrived(#18): '                     ---> 🍉🍉🍉 [Seq: 11] Hello: '👾 xenomorph''
        ---> 🚀 worker.run((💙)WORKER-ID-2:a5ca9131-45ed-4fae-8960-1d3046e976b0)(jobs chan closed) 🟥🟥🟥
        <--- 🚀 worker.run((💙)WORKER-ID-2:a5ca9131-45ed-4fae-8960-1d3046e976b0) (SENT FINISHED). 🚀🚀🚀
  !!!! 🧊 WorkerPool.drain - worker((💙)WORKER-ID-2:a5ca9131-45ed-4fae-8960-1d3046e976b0) finished, remaining: '4' 🟥
  <<<< 💠 consumer.run - new result arrived(#19): '                     ---> 🍉🍉🍉 [Seq: 16] Hello: '😺 garfield''
        ---> 🚀 worker.run((❤️)WORKER-ID-1:00cec252-bb46-452d-851e-7f336ce658d6)(jobs chan closed) 🟥🟥🟥
        <--- 🚀 worker.run((❤️)WORKER-ID-1:00cec252-bb46-452d-851e-7f336ce658d6) (SENT FINISHED). 🚀🚀🚀
  !!!! 🧊 WorkerPool.drain - worker((❤️)WORKER-ID-1:00cec252-bb46-452d-851e-7f336ce658d6) finished, remaining: '3' 🟥
  <<<< 💠 consumer.run - new result arrived(#20): '                     ---> 🍉🍉🍉 [Seq: 23] Hello: '👽 paul''
        ---> 🚀 worker.run((💜)WORKER-ID-4:c97b73ac-6ffd-4fbe-8ceb-c839809cbbfb)(jobs chan closed) 🟥🟥🟥
        <--- 🚀 worker.run((💜)WORKER-ID-4:c97b73ac-6ffd-4fbe-8ceb-c839809cbbfb) (SENT FINISHED). 🚀🚀🚀
  !!!! 🧊 WorkerPool.drain - worker((💜)WORKER-ID-4:c97b73ac-6ffd-4fbe-8ceb-c839809cbbfb) finished, remaining: '2' 🟥
  <<<< 💠 consumer.run - new result arrived(#21): '                     ---> 🍉🍉🍉 [Seq: 20] Hello: '💀 skeletor''
        ---> 🚀 worker.run((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238)(jobs chan closed) 🟥🟥🟥
        <--- 🚀 worker.run((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238) (SENT FINISHED). 🚀🚀🚀
  !!!! 🧊 WorkerPool.drain - worker((💛)WORKER-ID-5:9259ee6e-8f8d-4794-a146-a424dd759238) finished, remaining: '1' 🟥
  <<<< 💠 consumer.run - new result arrived(#22): '                     ---> 🍉🍉🍉 [Seq: 21] Hello: '💀 skeletor''
        ---> 🚀 worker.run((💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8)(jobs chan closed) 🟥🟥🟥
        <--- 🚀 worker.run((💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8) (SENT FINISHED). 🚀🚀🚀
  !!!! 🧊 WorkerPool.drain - worker((💚)WORKER-ID-3:6c4480e4-487f-48e5-b39f-49eb0f0f41a8) finished, remaining: '0' 🟥
  ===> 🧊 WorkerPool.run - drain complete (workers count: '0'). 🎃🎃🎃
                🔷🔷🔷 [[ WaitGroupAssister.Done ]] - name: '🧊 worker pool' (count: '1') (running: '💠 consumer')
  <--- WorkerPool.run (QUIT). 🧊🧊🧊
  <<<< 💠 consumer.run - new result arrived(#23): '                     ---> 🍉🍉🍉 [Seq: 22] Hello: '👽 paul''
  <<<< 💠 consumer.run - no more results available (running: false)
                🔷🔷🔷 [[ WaitGroupAssister.Done ]] - name: '💠 consumer' (count: '0') (running: '')
  <<<< 💠 consumer.run - finished (QUIT). 💠💠💠
  <--- orpheus(alpha) finished Counts >>> (Producer: '23', Consumer: '23'). 🎯🎯🎯
  🎈🎈🎈🎈remaining count: '0'
  << Captured StdOut/StdErr Output
------------------------------
 SUCCESS! 2.800972636s
[1692978194] I18n Suite - 0/0 specs - 7 procs  SUCCESS! 12.3158ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor Refactor code
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant