<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def _notify_event_internal(self, conn_string, name, event):
 """Notify that an event has occured. This method will send a notification and ensure that all callbacks registered for it have completed by the time it returns. In particular, if the callbacks are awaitable, this method will await them before returning. The order in which the callbacks are called is undefined. This is a low level method that is not intended to be called directly. You should use the high level public notify_* methods for each of the types of events to ensure consistency in how the event objects are created. Args: conn_string (str):
 The connection string for the device that the event is associated with. name (str):
 The name of the event. Must be in SUPPORTED_EVENTS. event (object):
 The event object. The type of this object will depend on what is being notified. """


        try:
            self._currently_notifying = True
            conn_id = self._get_conn_id(conn_string)

            event_maps = self._monitors.get(conn_string, {})
            wildcard_maps = self._monitors.get(None, {})

            wildcard_handlers = wildcard_maps.get(name, {})
            event_handlers = event_maps.get(name, {})

            for handler, func in itertools.chain(event_handlers.items(), wildcard_handlers.items()):
                try:
                    result = func(conn_string, conn_id, name, event)
                    if inspect.isawaitable(result):
                        await result
                except:  #pylint:disable=bare-except;This is a background function and we are logging exceptions
                    self._logger.warning("Error calling notification callback id=%s, func=%s", handler, func, exc_info=True)
        finally:
            for action in self._deferred_adjustments:
                self._adjust_monitor_internal(*action)

            self._deferred_adjustments = []
            self._currently_notifying = False