works -- but uses 100% CPU due to polling with out any blocking