Doc strings and text message update.
Use a non-blocking put to allow the code to execute more efficiently.
Capture the result of the fail, and repeat until a queue accepts the
put.
Do not use numpy arrays - they are slower than python arrays for this
operation (map building and copying)