Glimesh / waveguide

A polyglot WebRTC media server.
GNU Affero General Public License v3.0
37 stars 8 forks source link

Fix context propagation and work cancellation #20

Closed nassah221 closed 1 year ago

nassah221 commented 1 year ago

Addresses #16. It also contains the changes from https://github.com/Glimesh/waveguide/pull/19 as it builds up on it. Please let me know if I should stack this on top of #19 rather than base it to main or convert #19 to draft.

While the current method does work, the binary is killed with os.Exit() in main.go. With appropriate propagation of context to derived goroutines, the code is more readable and concise.

rtmp and thumnailer code seem to have the bulk of he changes. Please keep in mind that It is a possibilty that we might have to revisit this again in the future because some of the inputs don't make use of context at all currently, we will have to discover cause and origin of cancellation for each of them and then handle it gracefully.

clone1018 commented 1 year ago

Addresses #16. It also contains the changes from #19 as it builds up on it. Please let me know if I should stack this on top of #19 rather than base it to main or convert #19 to draft.

Good like it is! Whatever process makes me not block your forward progress.