    # File lib/chef/runner.rb, line 44
        def run_action(resource, action)
          resource.run_action(action)

          # Execute any immediate and queue up any delayed notifications
          # associated with the resource, but only if it was updated *this time*
          # we ran an action on it.
          if resource.updated_by_last_action?
            resource.immediate_notifications.each do |notification|
              Chef::Log.info("#{resource} sending #{notification.action} action to #{notification.resource} (immediate)")
              run_action(notification.resource, notification.action)
            end

            resource.delayed_notifications.each do |notification|
              if delayed_actions.any? { |existing_notification| existing_notification.duplicates?(notification) }
                Chef::Log.info( "#{resource} not queuing delayed action #{notification.action} on #{notification.resource}"\
                                " (delayed), as it's already been queued")
              else
                delayed_actions << notification
              end
            end
          end
        end