anchor: Channel:demand
  Retrieves the value of a Channel message and removes it from the message queue.
  
  It waits until a message is in the queue then returns the message value.
  value = Channel:demand()
  value Variant The contents of the message.
  value = Channel:demand( timeout )
  timeout number The maximum amount of time to wait.
  value Variant The contents of the message or nil if the timeout expired.