introduced exhausted acknowledge to avoid channel being disconnected while exhausted event still is in os i/o layer only
added single producer single consumer queue
common UnsafeAccess