+/**
+* @brief Try to listen and accept on one of the listening sockets.
+* Asynchronusly tries to grab the lock and perform an accept.
+* Will automatically updated the 'status' of the child and handle
+* all the locking/unlocking/timingout as necessary.
+* Changes behavior depending on whether the child already has other
+* client connections. If not it blocks on the lock call for periods of
+* time. Otherwise it loops on the lock using a timer in order to allow
+* processing of the other clients requests.
+*
+* @param mem_ctx The memory context on whic to allocate the request
+* @param ev The event context
+* @param pf The child/parent shared structure
+* @param listen_fd_size The number of listening file descriptors
+* @param listen_fds The array of listening file descriptors
+* @param lock_fd The locking file descriptor
+* @param addr The structure that will hold the client address on
+* return
+* @param addrlen The structure length on return.
+*
+* @return The tevent request pointer or NULL on allocation errors.
+*/