code: def watch_children(kzclient,
                     path, func, allow_session_lost=True, send_event=False,
                     ChildrenWatch=ChildrenWatch):
      
      def wrapped_func(*args, **kwargs):
          return blockingCallFromThread(kzclient.reactor, func, *args, **kwargs)
  
      return deferToThreadPool(
          kzclient.reactor,
          kzclient.pool,
          lambda: ChildrenWatch(
              kzclient.kazoo_client,
              path,
              func=wrapped_func,
              allow_session_lost=allow_session_lost,
              send_event=send_event))
docs: Install a Kazoo :obj:`ChildrenWatch` on the given path.
  
      The given `func` will be called in the reactor thread when any children are
      created or deleted, or if the node itself is deleted.
  
      Returns a Deferred which usually has no result, but may fail with an
      exception if e.g. the path does not exist.