Main Thread:
- create context
(zmq/context 1)
- create workers and pass them the context
- start the worker threads
- addShutdownHook
- shutdown the worker threads
- join the worker threads
- sleep 2s ;; without this line the terminate context sometimes hangs, with it so far it has never hung
- terminate the context
(.term context)
;; sometimes hangs here