'Return an IOWorker wrapping the given socket.
You can create a specific worker type by specifying
_worker_type.'

def new_worker(self, *args, **kw):

    _worker_type = kw.pop('_worker_type', None)
    if (_worker_type is None):
        _worker_type = self._worker_type
    assert issubclass(_worker_type, RecocoIOWorker)
    worker = _worker_type(*args, **kw)
    self.register_worker(worker)
    return worker
