refactior synchronized decorator
raise StopIteration if receive queue is empty
"hide" the "handle" method