Use message queue instead of synchronized blocks
No waiting in first connection