changed BaseLayerSocker.receive to be interruptable